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.cpp10
1 files changed, 9 insertions, 1 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 36573d870d4..24b79028653 100644
--- a/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
+++ b/src/mongo/db/repl/tenant_migration_access_blocker_util.cpp
@@ -92,6 +92,13 @@ TenantMigrationDonorDocument parseDonorStateDocument(const BSONObj& doc) {
switch (donorStateDoc.getState()) {
case TenantMigrationDonorStateEnum::kUninitialized:
break;
+ case TenantMigrationDonorStateEnum::kAbortingIndexBuilds:
+ uassert(ErrorCodes::BadValue,
+ errmsg,
+ !donorStateDoc.getBlockTimestamp() && !donorStateDoc.getCommitOrAbortOpTime() &&
+ !donorStateDoc.getAbortReason() &&
+ !donorStateDoc.getStartMigrationDonorTimestamp());
+ break;
case TenantMigrationDonorStateEnum::kDataSync:
uassert(ErrorCodes::BadValue,
errmsg,
@@ -232,6 +239,7 @@ void recoverTenantMigrationAccessBlockers(OperationContext* opCtx) {
.add(doc.getTenantId(), mtab);
switch (doc.getState()) {
+ case TenantMigrationDonorStateEnum::kAbortingIndexBuilds:
case TenantMigrationDonorStateEnum::kDataSync:
break;
case TenantMigrationDonorStateEnum::kBlocking:
@@ -252,7 +260,7 @@ void recoverTenantMigrationAccessBlockers(OperationContext* opCtx) {
}
mtab->setAbortOpTime(opCtx, doc.getCommitOrAbortOpTime().get());
break;
- default:
+ case TenantMigrationDonorStateEnum::kUninitialized:
MONGO_UNREACHABLE;
}
return true;