summaryrefslogtreecommitdiff
path: root/src/mongo/db/index_builds_coordinator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/index_builds_coordinator.cpp')
-rw-r--r--src/mongo/db/index_builds_coordinator.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/db/index_builds_coordinator.cpp b/src/mongo/db/index_builds_coordinator.cpp
index 6c6815d3e25..09badb3b528 100644
--- a/src/mongo/db/index_builds_coordinator.cpp
+++ b/src/mongo/db/index_builds_coordinator.cpp
@@ -1590,8 +1590,10 @@ void IndexBuildsCoordinator::createIndex(OperationContext* opCtx,
}
ScopeGuard abortOnExit([&] {
- _indexBuildsManager.abortIndexBuild(
- opCtx, collection, buildUUID, MultiIndexBlock::kNoopOnCleanUpFn);
+ // A timestamped transaction is needed to perform a catalog write that removes the index
+ // entry when aborting the single-phase index build for tenant migrations only.
+ auto onCleanUpFn = MultiIndexBlock::makeTimestampedOnCleanUpFn(opCtx, collection.get());
+ _indexBuildsManager.abortIndexBuild(opCtx, collection, buildUUID, onCleanUpFn);
});
uassertStatusOK(_indexBuildsManager.startBuildingIndex(opCtx, collection.get(), buildUUID));