diff options
author | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2022-03-10 13:00:44 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-03-10 13:34:05 +0000 |
commit | 76a2683fd01c74100104b05563073e1e0dc59d96 (patch) | |
tree | 01ab80e7c4d7f99413a36415848f78e5096763b4 /src/mongo/db/index_builds_coordinator.cpp | |
parent | 9f8769859bee0824c0bfdbc78abfdc634c87f4b8 (diff) | |
download | mongo-76a2683fd01c74100104b05563073e1e0dc59d96.tar.gz |
SERVER-63397 Abort all index builds during shard merge
Diffstat (limited to 'src/mongo/db/index_builds_coordinator.cpp')
-rw-r--r-- | src/mongo/db/index_builds_coordinator.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mongo/db/index_builds_coordinator.cpp b/src/mongo/db/index_builds_coordinator.cpp index 192b8371d84..91153f8e44f 100644 --- a/src/mongo/db/index_builds_coordinator.cpp +++ b/src/mongo/db/index_builds_coordinator.cpp @@ -778,6 +778,7 @@ void IndexBuildsCoordinator::abortDatabaseIndexBuilds(OperationContext* opCtx, } void IndexBuildsCoordinator::abortTenantIndexBuilds(OperationContext* opCtx, + MigrationProtocolEnum protocol, StringData tenantId, const std::string& reason) { LOGV2(4886203, @@ -787,7 +788,9 @@ void IndexBuildsCoordinator::abortTenantIndexBuilds(OperationContext* opCtx, auto builds = [&]() -> std::vector<std::shared_ptr<ReplIndexBuildState>> { auto indexBuildFilter = [=](const auto& replState) { - return repl::ClonerUtils::isDatabaseForTenant(replState.dbName, tenantId); + // Abort *all* index builds at the start of shard merge. + return protocol == MigrationProtocolEnum::kShardMerge || + repl::ClonerUtils::isDatabaseForTenant(replState.dbName, tenantId); }; return activeIndexBuilds.filterIndexBuilds(indexBuildFilter); }(); @@ -812,8 +815,7 @@ void IndexBuildsCoordinator::abortTenantIndexBuilds(OperationContext* opCtx, } for (const auto& replState : buildsWaitingToFinish) { LOGV2(6221600, - "Waiting on the index build to unregister before continuing the tenant " - " migration.", + "Waiting on the index build to unregister before continuing the tenant migration.", "tenantId"_attr = tenantId, "buildUUID"_attr = replState->buildUUID, "db"_attr = replState->dbName, |