summaryrefslogtreecommitdiff
path: root/src/mongo/db/storage
diff options
context:
space:
mode:
authorDavid Hows <howsdav@gmail.com>2017-04-28 17:38:22 +1000
committerDavid Hows <howsdav@gmail.com>2017-05-02 12:13:42 +1000
commit584d4a6a25ce56b07f13247b3ce7fe298b4a111e (patch)
tree773688200f3db569f418b869de0afa75f1102e34 /src/mongo/db/storage
parent955faacc4031403733f17fb8f4d0b89e6508dc1d (diff)
downloadmongo-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.cpp4
-rw-r--r--src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp4
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);
}