summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
diff options
context:
space:
mode:
authorDon Anderson <dda@mongodb.com>2017-10-31 13:54:10 -0400
committerDon Anderson <dda@mongodb.com>2017-10-31 13:54:10 -0400
commit2a8818d4fd7b833b82997c9996aca9eb14471f09 (patch)
tree208ebf9c6a6507aad3616e4e4ebb767a321ca9b7 /src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
parentefd028178dbf938a9f52abf6e9434dea6aa508e3 (diff)
downloadmongo-2a8818d4fd7b833b82997c9996aca9eb14471f09.tar.gz
SERVER-31590 Release unused cursors in the cache before awaiting oplog deletion
Diffstat (limited to 'src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp')
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
index 8a81f75b559..eadf2910eb1 100644
--- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
+++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp
@@ -1034,7 +1034,9 @@ bool WiredTigerRecordStore::yieldAndAwaitOplogDeletionRequest(OperationContext*
// The top-level locks were freed, so also release any potential low-level (storage engine)
// locks that might be held.
- opCtx->recoveryUnit()->abandonSnapshot();
+ WiredTigerRecoveryUnit* recoveryUnit = (WiredTigerRecoveryUnit*)opCtx->recoveryUnit();
+ recoveryUnit->abandonSnapshot();
+ recoveryUnit->beginIdle();
// Wait for an oplog deletion request, or for this record store to have been destroyed.
oplogStones->awaitHasExcessStonesOrDead();