if (error != CLEAN)
errorstream << ", ";
error = DEEP_ERROR;
- errorstream << "data_digest " << candidate.digest
+ errorstream << "data_digest 0x" << std::hex << candidate.digest
<< " != "
<< (auth_oi.is_data_digest() && okseed ? "known" : "best guess")
- << " data_digest " << auth.digest
+ << " data_digest 0x" << auth.digest << std::dec
<< " from auth shard " << auth_shard;
}
}
if (error != CLEAN)
errorstream << ", ";
error = DEEP_ERROR;
- errorstream << "omap_digest " << candidate.omap_digest
+ errorstream << "omap_digest 0x" << std::hex << candidate.omap_digest
<< " != "
<< (auth_oi.is_omap_digest() && okseed ? "known" : "best guess")
- << " omap_digest " << auth.omap_digest
+ << " omap_digest 0x" << auth.omap_digest << std::dec
<< " from auth shard " << auth_shard;
}
}
oi.data_digest != i->second.digest) {
dout(10) << __func__ << ": rejecting osd " << j->first
<< " for obj " << obj
- << ", data digest mismatch "
- << i->second.digest << " != " << oi.data_digest
- << dendl;
+ << ", data digest mismatch 0x" << std::hex
+ << i->second.digest << " != 0x" << oi.data_digest
+ << std::dec << dendl;
continue;
}
if (okseed && oi.is_omap_digest() && i->second.omap_digest_present &&
- oi.omap_digest != i->second.omap_digest) {
+ oi.omap_digest != i->second.omap_digest) {
dout(10) << __func__ << ": rejecting osd " << j->first
<< " for obj " << obj
- << ", omap digest mismatch "
- << i->second.omap_digest << " != " << oi.omap_digest
- << dendl;
+ << ", omap digest mismatch 0x" << std::hex
+ << i->second.omap_digest << " != 0x" << oi.omap_digest
+ << std::dec << dendl;
continue;
}
dout(10) << __func__ << ": selecting osd " << j->first
uint32_t crc = osd_op.outdata.crc32c(-1);
if (oi.data_digest != crc) {
osd->clog->error() << info.pgid << std::hex
- << " full-object read crc " << crc
- << " != expected " << oi.data_digest
+ << " full-object read crc 0x" << crc
+ << " != expected 0x" << oi.data_digest
<< std::dec << " on " << soid;
// FIXME fall back to replica or something?
if (g_conf->osd_read_eio_on_bad_digest)