diff options
author | Luke Chen <luke.chen@mongodb.com> | 2018-02-08 17:31:44 +1100 |
---|---|---|
committer | Luke Chen <luke.chen@mongodb.com> | 2018-02-08 17:31:44 +1100 |
commit | 7574817caec09fa1a2ab5ea60f00f766da63f9cd (patch) | |
tree | 6663806102c99c609c86b856409d6496179e4195 /src/third_party/wiredtiger/src/block/block_ckpt.c | |
parent | 34d2da2cfb93244818ecb55843f58d359151198d (diff) | |
download | mongo-7574817caec09fa1a2ab5ea60f00f766da63f9cd.tar.gz |
Import wiredtiger: a6e72378a60249228730667a2cba9a90c454b786 from branch mongodb-3.8
ref: 06a940e28a..a6e72378a6
for: 3.7.2
WT-3766 Lookaside sweep for obsolete updates
WT-3840 Dump more information when data corruption is encountered
WT-3847 Add a stub API for prepared transaction
WT-3854 Remove write lock from commit path, leaving old entries in queue
WT-3866 Bi-weekly WT codebase lint
WT-3877 WT_CONN_EVICTION_NO_LOOKASIDE is cleared unconditionally
WT-3878 Iteration can lose its position when updating a limbo page
WT-3881 key timestamp consistency checking should not check its own updates
WT-3887 log operations in format snapshot-isolation tracking
WT-3888 cursor search-near can return the wrong value for "exact"
WT-3889 format key-order return failure in LSM
WT-3890 core dump walking timestamp queue
WT-3891 Take the sweep walk rwlock whenever removing content from lookaside
WT-3895 Commit timestamp queue getting out of order
Diffstat (limited to 'src/third_party/wiredtiger/src/block/block_ckpt.c')
-rw-r--r-- | src/third_party/wiredtiger/src/block/block_ckpt.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/third_party/wiredtiger/src/block/block_ckpt.c b/src/third_party/wiredtiger/src/block/block_ckpt.c index 55df1527e98..73a3d13e307 100644 --- a/src/third_party/wiredtiger/src/block/block_ckpt.c +++ b/src/third_party/wiredtiger/src/block/block_ckpt.c @@ -221,10 +221,11 @@ __wt_block_checkpoint_start(WT_SESSION_IMPL *session, WT_BLOCK *block) case WT_CKPT_INPROGRESS: case WT_CKPT_PANIC_ON_FAILURE: case WT_CKPT_SALVAGE: - ret = __wt_block_panic(session, EINVAL, + __wt_err(session, EINVAL, "%s: an unexpected checkpoint start: the checkpoint " "has already started or was configured for salvage", block->name); + ret = __wt_block_panic(session); break; case WT_CKPT_NONE: block->ckpt_state = WT_CKPT_INPROGRESS; @@ -433,10 +434,11 @@ __ckpt_process(WT_SESSION_IMPL *session, WT_BLOCK *block, WT_CKPT *ckptbase) break; case WT_CKPT_NONE: case WT_CKPT_PANIC_ON_FAILURE: - ret = __wt_block_panic(session, EINVAL, + __wt_err(session, EINVAL, "%s: an unexpected checkpoint attempt: the checkpoint " "was never started or has already completed", block->name); + ret = __wt_block_panic(session); break; case WT_CKPT_SALVAGE: /* Salvage doesn't use the standard checkpoint APIs. */ @@ -718,9 +720,11 @@ live_update: "list"); #endif -err: if (ret != 0 && fatal) - ret = __wt_block_panic(session, ret, +err: if (ret != 0 && fatal) { + __wt_err(session, ret, "%s: fatal checkpoint failure", block->name); + ret = __wt_block_panic(session); + } if (locked) __wt_spin_unlock(session, &block->live_lock); @@ -842,26 +846,30 @@ __wt_block_checkpoint_resolve( goto done; case WT_CKPT_NONE: case WT_CKPT_SALVAGE: - ret = __wt_block_panic(session, EINVAL, + __wt_err(session, EINVAL, "%s: an unexpected checkpoint resolution: the checkpoint " "was never started or completed, or configured for salvage", block->name); + ret = __wt_block_panic(session); break; case WT_CKPT_PANIC_ON_FAILURE: if (!failed) break; - ret = __wt_block_panic(session, EINVAL, + __wt_err(session, EINVAL, "%s: the checkpoint failed, the system must restart", block->name); + ret = __wt_block_panic(session); break; } WT_ERR(ret); if ((ret = __wt_block_extlist_merge( - session, block, &ci->ckpt_avail, &ci->avail)) != 0) - WT_ERR(__wt_block_panic(session, ret, + session, block, &ci->ckpt_avail, &ci->avail)) != 0) { + __wt_err(session, ret, "%s: fatal checkpoint failure during extent list merge", - block->name)); + block->name); + ret = __wt_block_panic(session); + } __wt_spin_unlock(session, &block->live_lock); /* Discard the lists remaining after the checkpoint call. */ |