summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
diff options
context:
space:
mode:
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.cpp11
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: