summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
diff options
context:
space:
mode:
authorA. Jesse Jiryu Davis <jesse@mongodb.com>2022-03-11 02:28:07 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-11 02:56:59 +0000
commit1f6a50edeb62aad2419c46647f066aadbc03bc79 (patch)
tree4f222527c4c49aa0c98beab30484746e5b3fa258 /src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
parent736a3ebe7241a0fbec8734d66b75e74697ce42a5 (diff)
downloadmongo-1f6a50edeb62aad2419c46647f066aadbc03bc79.tar.gz
SERVER-64428 Fix crash in tenant_migration_donor_initial_sync_recovery.js
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: