summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp1
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp9
2 files changed, 9 insertions, 1 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp b/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
index 51817d9e0c2..5d3514af2e1 100644
--- a/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl_elect_test.cpp
@@ -516,6 +516,7 @@ TEST_F(ReplCoordElectTest, StepsDownRemoteIfNodeHasHigherPriorityThanCurrentPrim
auto&& request = noi->getRequest();
log() << request.target << " processing " << request.cmdObj;
ASSERT_EQUALS("replSetStepDown", request.cmdObj.firstElement().fieldNameStringData());
+ ASSERT_EQUALS(1LL, request.cmdObj["secondaryCatchUpPeriodSecs"].safeNumberLong());
auto target = request.target;
ASSERT_EQUALS(HostAndPort("node2", 12345), target);
auto response = makeResponseStatus(BSON("ok" << 1));
diff --git a/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp b/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp
index 72ff8ccb973..ad38191066c 100644
--- a/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp
@@ -329,7 +329,14 @@ void remoteStepdownCallback(const ReplicationExecutor::RemoteCommandCallbackArgs
} // namespace
void ReplicationCoordinatorImpl::_requestRemotePrimaryStepdown(const HostAndPort& target) {
- RemoteCommandRequest request(target, "admin", BSON("replSetStepDown" << 20), nullptr);
+ auto secondaryCatchUpPeriod(duration_cast<Seconds>(_rsConfig.getHeartbeatInterval() / 2));
+ RemoteCommandRequest request(
+ target,
+ "admin",
+ BSON("replSetStepDown" << 20 << "secondaryCatchUpPeriodSecs"
+ << std::min(static_cast<long long>(secondaryCatchUpPeriod.count()),
+ 20LL)),
+ nullptr);
log() << "Requesting " << target << " step down from primary";
CBHStatus cbh = _replExecutor.scheduleRemoteCommand(request, remoteStepdownCallback);