summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/block/block_ckpt.c
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2018-02-08 17:31:44 +1100
committerLuke Chen <luke.chen@mongodb.com>2018-02-08 17:31:44 +1100
commit7574817caec09fa1a2ab5ea60f00f766da63f9cd (patch)
tree6663806102c99c609c86b856409d6496179e4195 /src/third_party/wiredtiger/src/block/block_ckpt.c
parent34d2da2cfb93244818ecb55843f58d359151198d (diff)
downloadmongo-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.c26
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. */