diff options
author | Randolph Tan <randolph@10gen.com> | 2023-05-17 17:36:16 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-05-17 19:38:40 +0000 |
commit | e90dcb18de438b6b6ab02b2c921463fd35b866cb (patch) | |
tree | 745b158e535b35e41524faa8550d40eb20658dc4 /src/mongo/db | |
parent | daf7bd5ff960050582f48aeda84b782cd013d825 (diff) | |
download | mongo-e90dcb18de438b6b6ab02b2c921463fd35b866cb.tar.gz |
SERVER-76546 _migrateClone can deadlock with prepared transactions on secondaries
Diffstat (limited to 'src/mongo/db')
-rw-r--r-- | src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp b/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp index b623db6b16d..8bf95705b43 100644 --- a/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp +++ b/src/mongo/db/s/migration_chunk_cloner_source_legacy_commands.cpp @@ -76,6 +76,11 @@ public: str::stream() << "Collection " << nss->toStringForErrorMsg() << " does not exist", _autoColl->getCollection()); + uassert(ErrorCodes::NotWritablePrimary, + "No longer primary when trying to acquire active migrate cloner", + opCtx->writesAreReplicated() && + repl::ReplicationCoordinator::get(opCtx)->canAcceptWritesFor(opCtx, *nss)); + { const auto scopedCsr = CollectionShardingRuntime::assertCollectionLockedAndAcquireShared(opCtx, *nss); |