diff options
author | David Hows <howsdav@gmail.com> | 2017-04-28 17:38:22 +1000 |
---|---|---|
committer | David Hows <howsdav@gmail.com> | 2017-05-02 12:13:42 +1000 |
commit | 584d4a6a25ce56b07f13247b3ce7fe298b4a111e (patch) | |
tree | 773688200f3db569f418b869de0afa75f1102e34 /src/mongo/db/storage | |
parent | 955faacc4031403733f17fb8f4d0b89e6508dc1d (diff) | |
download | mongo-584d4a6a25ce56b07f13247b3ce7fe298b4a111e.tar.gz |
SERVER-29011 Don't use side sessions during compacts in the WT KV Engine
Diffstat (limited to 'src/mongo/db/storage')
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp index f9bdfb21c60..532447eeda0 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp @@ -463,8 +463,8 @@ Status WiredTigerIndex::initAsEmpty(OperationContext* opCtx) { Status WiredTigerIndex::compact(OperationContext* opCtx) { WiredTigerSessionCache* cache = WiredTigerRecoveryUnit::get(opCtx)->getSessionCache(); if (!cache->isEphemeral()) { - UniqueWiredTigerSession session = cache->getSession(); - WT_SESSION* s = session->getSession(); + WT_SESSION* s = WiredTigerRecoveryUnit::get(opCtx)->getSession(opCtx)->getSession(); + opCtx->recoveryUnit()->abandonSnapshot(); int ret = s->compact(s, uri().c_str(), "timeout=0"); invariantWTOK(ret); } diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp index 593fd2d8bca..72f22f176ca 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp @@ -1530,8 +1530,8 @@ Status WiredTigerRecordStore::compact(OperationContext* opCtx, CompactStats* stats) { WiredTigerSessionCache* cache = WiredTigerRecoveryUnit::get(opCtx)->getSessionCache(); if (!cache->isEphemeral()) { - UniqueWiredTigerSession session = cache->getSession(); - WT_SESSION* s = session->getSession(); + WT_SESSION* s = WiredTigerRecoveryUnit::get(opCtx)->getSession(opCtx)->getSession(); + opCtx->recoveryUnit()->abandonSnapshot(); int ret = s->compact(s, getURI().c_str(), "timeout=0"); invariantWTOK(ret); } |