summaryrefslogtreecommitdiff
path: root/src/txn/txn_log.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/txn/txn_log.c')
-rw-r--r--src/txn/txn_log.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/txn/txn_log.c b/src/txn/txn_log.c
index 5f4704b40c4..2931dc1ce82 100644
--- a/src/txn/txn_log.c
+++ b/src/txn/txn_log.c
@@ -269,7 +269,7 @@ __wt_txn_checkpoint_logread(WT_SESSION_IMPL *session,
WT_ITEM ckpt_snapshot_unused;
uint32_t ckpt_file, ckpt_offset;
u_int ckpt_nsnapshot_unused;
- const char *fmt = WT_UNCHECKED_STRING(IIIU);
+ const char *fmt = WT_UNCHECKED_STRING(IIIu);
if ((ret = __wt_struct_unpack(session, *pp, WT_PTRDIFF(end, *pp), fmt,
&ckpt_file, &ckpt_offset,
@@ -297,7 +297,7 @@ __wt_txn_checkpoint_log(
uint8_t *end, *p;
size_t recsize;
uint32_t i, rectype = WT_LOGREC_CHECKPOINT;
- const char *fmt = WT_UNCHECKED_STRING(IIIIU);
+ const char *fmt = WT_UNCHECKED_STRING(IIIIu);
txn = &session->txn;
ckpt_lsn = &txn->ckpt_lsn;
@@ -368,14 +368,16 @@ __wt_txn_checkpoint_log(
/*
* If this full checkpoint completed successfully and there is
- * no hot backup in progress, tell the logging subsystem the
- * checkpoint LSN so that it can archive. Do not update the
- * logging checkpoint LSN if this is during a clean connection
- * close, only during a full checkpoint. A clean close may not
- * update any metadata LSN and we do not want to archive in
- * that case.
+ * no hot backup in progress and this is not recovery, tell
+ * the logging subsystem the checkpoint LSN so that it can
+ * archive. Do not update the logging checkpoint LSN if this
+ * is during a clean connection close, only during a full
+ * checkpoint. A clean close may not update any metadata LSN
+ * and we do not want to archive in that case.
*/
- if (!S2C(session)->hot_backup && txn->full_ckpt)
+ if (!S2C(session)->hot_backup &&
+ !F_ISSET(S2C(session), WT_CONN_RECOVERING) &&
+ txn->full_ckpt)
__wt_log_ckpt(session, ckpt_lsn);
/* FALLTHROUGH */