summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDon Anderson <dda@mongodb.com>2015-07-24 23:38:44 -0400
committerMichael Cahill <michael.cahill@mongodb.com>2015-08-04 14:54:09 +1000
commit00f7e9a47fa0774f87e88dabbbf09a01b99d80ef (patch)
treebdc930b425413e90e7a305f5bc7e86242bb2fd6f
parent98ac371e715dc58d7d3153d650a721bc952449b6 (diff)
downloadmongo-00f7e9a47fa0774f87e88dabbbf09a01b99d80ef.tar.gz
Merge pull request #2086 from wiredtiger/wt-2020-checksum-error-messages
WT-2020: clarify checksum error failure messages. (cherry picked from commit 7d6075c5ad327d14a0b59410b84a2e5678069e4d)
-rw-r--r--src/block/block_read.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/block/block_read.c b/src/block/block_read.c
index ef944fcb152..0d631396b41 100644
--- a/src/block/block_read.c
+++ b/src/block/block_read.c
@@ -192,21 +192,29 @@ __wt_block_read_off(WT_SESSION_IMPL *session, WT_BLOCK *block,
buf->size = size;
blk = WT_BLOCK_HEADER_REF(buf->mem);
- page_cksum = blk->cksum;
- if (page_cksum == cksum) {
+ if (blk->cksum == cksum) {
blk->cksum = 0;
page_cksum = __wt_cksum(buf->mem,
F_ISSET(blk, WT_BLOCK_DATA_CKSUM) ?
size : WT_BLOCK_COMPRESS_SKIP);
if (page_cksum == cksum)
return (0);
- }
- if (!F_ISSET(session, WT_SESSION_SALVAGE_CORRUPT_OK))
- __wt_errx(session,
- "read checksum error [%" PRIu32 "B @ %" PRIuMAX ", %"
- PRIu32 " != %" PRIu32 "]",
- size, (uintmax_t)offset, cksum, page_cksum);
+ if (!F_ISSET(session, WT_SESSION_SALVAGE_CORRUPT_OK))
+ __wt_errx(session,
+ "read checksum error for %" PRIu32 "B block at "
+ "offset %" PRIuMAX ": calculated block checksum "
+ "of %" PRIu32 " doesn't match expected checksum "
+ "of %" PRIu32,
+ size, (uintmax_t)offset, page_cksum, cksum);
+ } else
+ if (!F_ISSET(session, WT_SESSION_SALVAGE_CORRUPT_OK))
+ __wt_errx(session,
+ "read checksum error for %" PRIu32 "B block at "
+ "offset %" PRIuMAX ": block header checksum "
+ "of %" PRIu32 " doesn't match expected checksum "
+ "of %" PRIu32,
+ size, (uintmax_t)offset, blk->cksum, cksum);
/* Panic if a checksum fails during an ordinary read. */
return (block->verify ||