diff options
author | Abdul Qadeer <abdul.qadeer@mongodb.com> | 2022-07-18 11:36:54 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-08-05 20:28:39 +0000 |
commit | 32f1d5772af14cecc6df7d06eed6e850aa39d0ee (patch) | |
tree | 0b2c74fd001d6347abdb5d2b31a346494fcbd0bb /src/mongo | |
parent | 32f0f9c88dc44a2c8073a5bd47cf779d4bfdee6b (diff) | |
download | mongo-32f1d5772af14cecc6df7d06eed6e850aa39d0ee.tar.gz |
SERVER-61985 SERVER-67193 Make reshardingPauseCoordinatorBeforeCompletion failpoint pause conditionally
(cherry picked from commit 0d5fd57f9e55915550dd7d13340e2944c169c6e2)
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/s/resharding/resharding_coordinator_service.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp index 9eb5b4a920d..134017fafd7 100644 --- a/src/mongo/db/s/resharding/resharding_coordinator_service.cpp +++ b/src/mongo/db/s/resharding/resharding_coordinator_service.cpp @@ -1305,8 +1305,15 @@ SemiFuture<void> ReshardingCoordinatorService::ReshardingCoordinator::run( }) .onCompletion([this, executor](Status status) { auto opCtx = _cancelableOpCtxFactory->makeOperationContext(&cc()); - reshardingPauseCoordinatorBeforeCompletion.pauseWhileSetAndNotCanceled( - opCtx.get(), _ctHolder->getStepdownToken()); + reshardingPauseCoordinatorBeforeCompletion.executeIf( + [&](const BSONObj&) { + reshardingPauseCoordinatorBeforeCompletion.pauseWhileSetAndNotCanceled( + opCtx.get(), _ctHolder->getStepdownToken()); + }, + [&](const BSONObj& data) { + auto ns = data.getStringField("sourceNamespace"); + return ns.empty() ? true : ns.toString() == _coordinatorDoc.getSourceNss().ns(); + }); { auto lg = stdx::lock_guard(_fulfillmentMutex); |