summaryrefslogtreecommitdiff
path: root/src/txn/txn.c
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2015-01-13 11:39:42 -0500
committerAlex Gorrod <alexander.gorrod@mongodb.com>2015-01-13 11:39:42 -0500
commit41145a6e5d6e89c10168ef02b5e2434152863776 (patch)
tree1271495e9d19ebbb24538a2eeeff1242e400bfa9 /src/txn/txn.c
parenta26ff8451e9961a7e64b135259ba857f075a6891 (diff)
parent84a99d06265ff119b4bac8d760852bdd3aca84df (diff)
downloadmongo-41145a6e5d6e89c10168ef02b5e2434152863776.tar.gz
Merge pull request #1549 from wiredtiger/mongodb-pauses
Fixes for some MongoDB pauses
Diffstat (limited to 'src/txn/txn.c')
-rw-r--r--src/txn/txn.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/txn/txn.c b/src/txn/txn.c
index fd80efd5ebd..5b8f11a88a5 100644
--- a/src/txn/txn.c
+++ b/src/txn/txn.c
@@ -361,8 +361,15 @@ __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[])
/* If we are logging, write a commit log record. */
if (ret == 0 && txn->mod_count > 0 &&
FLD_ISSET(S2C(session)->log_flags, WT_CONN_LOG_ENABLED) &&
- !F_ISSET(session, WT_SESSION_NO_LOGGING))
+ !F_ISSET(session, WT_SESSION_NO_LOGGING)) {
+ /*
+ * We are about to block on I/O writing the log.
+ * Release our snapshot in case it is keeping data pinned.
+ * This is particularly important for checkpoints.
+ */
+ __wt_txn_release_snapshot(session);
ret = __wt_txn_log_commit(session, cfg);
+ }
/*
* If anything went wrong, roll back.