diff --git a/src/mongo/db/s/config/configsvr_control_balancer_command.cpp b/src/mongo/db/s/config/configsvr_control_balancer_command.cpp index 915c9d76779..137ba07c37b 100644 --- a/src/mongo/db/s/config/configsvr_control_balancer_command.cpp +++ b/src/mongo/db/s/config/configsvr_control_balancer_command.cpp @@ -60,6 +60,8 @@ namespace mongo { namespace { +MONGO_FAIL_POINT_DEFINE(hangDuringBalancerStopCommand); + class ConfigSvrBalancerControlCommand : public BasicCommand { public: ConfigSvrBalancerControlCommand(StringData name) : BasicCommand(name) {} @@ -157,6 +159,10 @@ private: uassertStatusOK(balancerConfig->setBalancerMode(opCtx, BalancerSettingsType::kOff)); uassertStatusOK(balancerConfig->changeAutoMergeSettings(opCtx, false)); + opCtx->setAlwaysInterruptAtStepDownOrUp_UNSAFE(); + hangDuringBalancerStopCommand.pauseWhileSet(); + opCtx->checkForInterrupt(); + Balancer::get(opCtx)->notifyPersistedBalancerSettingsChanged(opCtx); Balancer::get(opCtx)->joinCurrentRound(opCtx); diff --git a/src/mongo/s/client/shard.cpp b/src/mongo/s/client/shard.cpp index 35717b36aca..00e7b47be70 100644 --- a/src/mongo/s/client/shard.cpp +++ b/src/mongo/s/client/shard.cpp @@ -48,7 +48,7 @@ namespace mongo { namespace { -const int kOnErrorNumRetries = 3; +const int kOnErrorNumRetries = 1; } // namespace Status Shard::CommandResponse::getEffectiveStatus(