diff options
author | Jason Zhang <jason.zhang@mongodb.com> | 2022-06-22 01:21:36 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-06-22 01:56:16 +0000 |
commit | fdf1e87a30e8c879080839573700ceed42ab1db4 (patch) | |
tree | c3b8afd5c369bba592548f05d6607a123b5cf2df | |
parent | 3415ba571e7bf99bcb1621f037249a8f4d8a1cc6 (diff) | |
download | mongo-fdf1e87a30e8c879080839573700ceed42ab1db4.tar.gz |
SERVER-67422 Have getAllRemovalFuturesForCoordinatorsForInternalTransactions wait for TransactionCoordinator catalog recovery
-rw-r--r-- | src/mongo/db/s/transaction_coordinator_service.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/s/transaction_coordinator_service.cpp b/src/mongo/db/s/transaction_coordinator_service.cpp index 41b758cffec..c317922c251 100644 --- a/src/mongo/db/s/transaction_coordinator_service.cpp +++ b/src/mongo/db/s/transaction_coordinator_service.cpp @@ -379,6 +379,10 @@ TransactionCoordinatorService::getAllRemovalFuturesForCoordinatorsForInternalTra std::shared_ptr<CatalogAndScheduler> cas = _getCatalogAndScheduler(opCtx); auto& catalog = cas->catalog; + // On step up, we want to wait until the catalog has recovered all active transaction + // coordinators before getting the removal futures. + cas->recoveryTaskCompleted->get(opCtx); + auto predicate = [](const LogicalSessionId lsid, const TxnNumberAndRetryCounter txnNumberAndRetryCounter, const std::shared_ptr<TransactionCoordinator> transactionCoordinator) { |