summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKshitij Gupta <kshitij.gupta@mongodb.com>2020-06-23 18:01:58 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-08-05 01:47:38 +0000
commita85277d4c53722830121cb3f447effa6cc70fd3d (patch)
treeacb8c301fd994223ba7bf58f0ccb8892775065b1
parentbcc13efa8d46d60d57462c58992c7eee38cc4f6d (diff)
downloadmongo-a85277d4c53722830121cb3f447effa6cc70fd3d.tar.gz
SERVER-48531: 3 way deadlock can happen between chunk splitter, prepared transactions and stepdown thread.
(cherry picked from commit 1e23a0f7659d67df27ae8d553f99f35e52a91c0c)
-rw-r--r--src/mongo/db/s/chunk_splitter.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mongo/db/s/chunk_splitter.cpp b/src/mongo/db/s/chunk_splitter.cpp
index aedbdfdebff..fdd062739c9 100644
--- a/src/mongo/db/s/chunk_splitter.cpp
+++ b/src/mongo/db/s/chunk_splitter.cpp
@@ -69,6 +69,8 @@ ThreadPool::Options makeDefaultThreadPoolOptions() {
// Ensure all threads have a client
options.onCreateThread = [](const std::string& threadName) {
Client::initThread(threadName.c_str());
+ stdx::lock_guard<Client> lk(cc());
+ cc().setSystemOperationKillable(lk);
};
return options;
}