summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorAndy Schwerin <schwerin@mongodb.com>2014-10-16 17:30:19 -0400
committerAndy Schwerin <schwerin@mongodb.com>2014-10-16 17:36:07 -0400
commit5af2cac9e0de1bf20eba4790ecc3547c679dfd13 (patch)
tree7d748c85bc614b9662faeada8751f990cfd8d3a9 /src/mongo
parentca6ab0db384f3b397c6abe1f61053db06e2658ac (diff)
downloadmongo-5af2cac9e0de1bf20eba4790ecc3547c679dfd13.tar.gz
SERVER-15535 Do not immediately stand for reelection after stepping down for a higher priority node.
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/repl/topology_coordinator_impl.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/db/repl/topology_coordinator_impl.cpp b/src/mongo/db/repl/topology_coordinator_impl.cpp
index 02d2136ab22..e7a033e4245 100644
--- a/src/mongo/db/repl/topology_coordinator_impl.cpp
+++ b/src/mongo/db/repl/topology_coordinator_impl.cpp
@@ -919,6 +919,12 @@ namespace {
<< (latestOpTime.getSecs() - highestPriorityMemberOptime.getSecs())
<< " seconds behind";
if (_iAmPrimary()) {
+ const Date_t until = now +
+ LastVote::leaseTime.total_milliseconds() +
+ kHeartbeatInterval.total_milliseconds();
+ if (_stepDownUntil < until) {
+ setStepDownTime(until);
+ }
return _stepDownSelf();
}
else {