From 8ef4cf89dc04a8e501da6aba3da61a5a9657dcbc Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 17 Jun 2023 01:16:53 +0300 Subject: [PATCH] Log more details about checksum mismatch in big_writes --- src/blockstore_read.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/blockstore_read.cpp b/src/blockstore_read.cpp index a563625b..2eb675ef 100644 --- a/src/blockstore_read.cpp +++ b/src/blockstore_read.cpp @@ -824,7 +824,17 @@ void blockstore_impl_t::handle_read_event(ring_data_t *data, blockstore_op_t *op else if (rv[i].csum_buf) { // BIG_WRITE from journal - ok = verify_padded_checksums(rv[i].csum_buf, true, rv[i].disk_offset % dsk.data_block_size, iov, n_iov, NULL); + verify_padded_checksums(rv[i].csum_buf, true, rv[i].disk_offset % dsk.data_block_size, iov, n_iov, + [&](uint32_t bad_block, uint32_t calc_csum, uint32_t stored_csum) + { + ok = false; + printf( + "Checksum mismatch in object %lx:%lx v%lu in RoW data at block #%u: got %08x, expected %08x\n", + op->oid.inode, op->oid.stripe, op->version, + bad_block / dsk.csum_block_size, calc_csum, stored_csum + ); + } + ); } else {