summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorAbdul Qadeer <abdul.qadeer@mongodb.com>2022-07-18 11:36:54 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-05 20:28:39 +0000
commit32f1d5772af14cecc6df7d06eed6e850aa39d0ee (patch)
tree0b2c74fd001d6347abdb5d2b31a346494fcbd0bb /src/mongo
parent32f0f9c88dc44a2c8073a5bd47cf779d4bfdee6b (diff)
downloadmongo-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.cpp11
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);