diff options
Diffstat (limited to 'src/mongo/db/s/transaction_coordinator_service.cpp')
-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) { |