diff options
Diffstat (limited to 'src/mongo/db/repl/replication_coordinator_impl.cpp')
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index 65ecfe92aa5..287cf9bae41 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -97,6 +97,8 @@ MONGO_FAIL_POINT_DEFINE(stepdownHangBeforePerformingPostMemberStateUpdateActions MONGO_FAIL_POINT_DEFINE(transitionToPrimaryHangBeforeTakingGlobalExclusiveLock); MONGO_FAIL_POINT_DEFINE(holdStableTimestampAtSpecificTimestamp); +MONGO_EXPORT_SERVER_PARAMETER(closeConnectionsOnStepdown, bool, true); + using CallbackArgs = executor::TaskExecutor::CallbackArgs; using CallbackFn = executor::TaskExecutor::CallbackFn; using CallbackHandle = executor::TaskExecutor::CallbackHandle; @@ -2591,7 +2593,7 @@ ReplicationCoordinatorImpl::_updateMemberStateFromTopologyCoordinator(WithLock l invariant(!_readWriteAbility->canAcceptNonLocalWrites(lk)); serverGlobalParams.validateFeaturesAsMaster.store(false); - result = kActionCloseAllConnections; + result = kActionSteppedDownOrRemoved; } else { result = kActionFollowerModeStateChange; } @@ -2696,8 +2698,10 @@ void ReplicationCoordinatorImpl::_performPostMemberStateUpdateAction( case kActionFollowerModeStateChange: _onFollowerModeStateChange(); break; - case kActionCloseAllConnections: - _externalState->closeConnections(); + case kActionSteppedDownOrRemoved: + if (closeConnectionsOnStepdown.load()) { + _externalState->closeConnections(); + } _externalState->shardingOnStepDownHook(); _externalState->stopNoopWriter(); break; |