diff options
author | David Hows <howsdav@gmail.com> | 2017-04-28 17:38:22 +1000 |
---|---|---|
committer | David Hows <howsdav@gmail.com> | 2017-06-15 12:01:35 +1000 |
commit | 4a92de28ed34f85e190744bda3930f3cdbc85e75 (patch) | |
tree | 3e4b119de8caa6dab83d4be7bc5655424d8f1e65 | |
parent | 2bda80db0aab45d2ffab9a9c18c4258d498fcceb (diff) | |
download | mongo-4a92de28ed34f85e190744bda3930f3cdbc85e75.tar.gz |
SERVER-29011 Don't use side sessions during compacts in the WT KV Engine
(cherry picked from commit 584d4a6a25ce56b07f13247b3ce7fe298b4a111e)
-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 b2cf00dc0de..50729e013af 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_index.cpp @@ -457,8 +457,8 @@ Status WiredTigerIndex::initAsEmpty(OperationContext* txn) { Status WiredTigerIndex::compact(OperationContext* txn) { WiredTigerSessionCache* cache = WiredTigerRecoveryUnit::get(txn)->getSessionCache(); if (!cache->isEphemeral()) { - UniqueWiredTigerSession session = cache->getSession(); - WT_SESSION* s = session->getSession(); + WT_SESSION* s = WiredTigerRecoveryUnit::get(txn)->getSession(txn)->getSession(); + txn->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 c3ecbb0e55b..b181fcdb10d 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp @@ -1524,8 +1524,8 @@ Status WiredTigerRecordStore::compact(OperationContext* txn, CompactStats* stats) { WiredTigerSessionCache* cache = WiredTigerRecoveryUnit::get(txn)->getSessionCache(); if (!cache->isEphemeral()) { - UniqueWiredTigerSession session = cache->getSession(); - WT_SESSION* s = session->getSession(); + WT_SESSION* s = WiredTigerRecoveryUnit::get(txn)->getSession(txn)->getSession(); + txn->recoveryUnit()->abandonSnapshot(); int ret = s->compact(s, getURI().c_str(), "timeout=0"); invariantWTOK(ret); } |