diff options
Diffstat (limited to 'src/mongo/db/index_builds_coordinator.cpp')
-rw-r--r-- | src/mongo/db/index_builds_coordinator.cpp | 6 |
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)); |