summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp
index a0ca0696f16..3d5ee943804 100644
--- a/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp
+++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp
@@ -163,10 +163,15 @@ void LogTransactionOperationsForShardingHandler::commit(boost::optional<Timestam
const auto& nss = stmt.getNss();
auto csr = CollectionShardingRuntime::get_UNSAFE(_svcCtx, nss);
- auto msm = MigrationSourceManager::get_UNSAFE(csr);
+
+ auto opCtx = cc().getOperationContext();
+ auto csrLock = CollectionShardingRuntime::CSRLock::lockShared(opCtx, csr);
+
+ auto msm = MigrationSourceManager::get(csr, csrLock);
if (!msm) {
continue;
}
+
auto cloner = dynamic_cast<MigrationChunkClonerSourceLegacy*>(msm->getCloner().get());
auto opType = stmt.getOpType();