summaryrefslogtreecommitdiff
path: root/src/mongo/db/index_builds_coordinator.cpp
diff options
context:
space:
mode:
authorA. Jesse Jiryu Davis <jesse@mongodb.com>2022-03-10 13:00:44 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-10 13:34:05 +0000
commit76a2683fd01c74100104b05563073e1e0dc59d96 (patch)
tree01ab80e7c4d7f99413a36415848f78e5096763b4 /src/mongo/db/index_builds_coordinator.cpp
parent9f8769859bee0824c0bfdbc78abfdc634c87f4b8 (diff)
downloadmongo-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.cpp8
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,