diff options
author | Don Anderson <dda@mongodb.com> | 2017-10-31 13:54:10 -0400 |
---|---|---|
committer | Don Anderson <dda@mongodb.com> | 2017-10-31 13:54:10 -0400 |
commit | 2a8818d4fd7b833b82997c9996aca9eb14471f09 (patch) | |
tree | 208ebf9c6a6507aad3616e4e4ebb767a321ca9b7 /src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp | |
parent | efd028178dbf938a9f52abf6e9434dea6aa508e3 (diff) | |
download | mongo-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.cpp | 4 |
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(); |