diff options
-rw-r--r-- | src/mongo/db/s/migration_chunk_cloner_source_legacy.cpp | 7 |
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(); |