diff options
Diffstat (limited to 'src/mongo/db/repl/tenant_migration_access_blocker_util.cpp')
-rw-r--r-- | src/mongo/db/repl/tenant_migration_access_blocker_util.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp b/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp index a6efa1797c7..a68d4e5041b 100644 --- a/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp +++ b/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp @@ -308,15 +308,20 @@ void recoverTenantMigrationAccessBlockers(OperationContext* opCtx) { return true; } + auto protocol = doc.getProtocol().value_or(MigrationProtocolEnum::kMultitenantMigrations); auto mtab = std::make_shared<TenantMigrationDonorAccessBlocker>( opCtx->getServiceContext(), doc.getId(), doc.getTenantId().toString(), - doc.getProtocol().value_or(MigrationProtocolEnum::kMultitenantMigrations), + protocol, doc.getRecipientConnectionString().toString()); - TenantMigrationAccessBlockerRegistry::get(opCtx->getServiceContext()) - .add(doc.getTenantId(), mtab); + auto& registry = TenantMigrationAccessBlockerRegistry::get(opCtx->getServiceContext()); + if (protocol == MigrationProtocolEnum::kMultitenantMigrations) { + registry.add(doc.getTenantId(), mtab); + } else { + registry.addDonorAccessBlocker(mtab); + } switch (doc.getState()) { case TenantMigrationDonorStateEnum::kAbortingIndexBuilds: |