diff options
author | Eric Milkie <milkie@10gen.com> | 2013-05-22 17:08:31 -0400 |
---|---|---|
committer | Eric Milkie <milkie@10gen.com> | 2013-05-22 17:20:45 -0400 |
commit | d01732d65dea9295ffe08bbbe748136dcd4178bf (patch) | |
tree | 16be80eab4d7ddb98ca83644ddd98f68e2951b24 | |
parent | c34d5a987b25ec72b989077769435404ad7d3608 (diff) | |
download | mongo-d01732d65dea9295ffe08bbbe748136dcd4178bf.tar.gz |
SERVER-9730 under any circumstances, do not vote yea while a primary already exists
-rw-r--r-- | src/mongo/db/repl/consensus.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mongo/db/repl/consensus.cpp b/src/mongo/db/repl/consensus.cpp index dbb36efaaa3..f056befb605 100644 --- a/src/mongo/db/repl/consensus.cpp +++ b/src/mongo/db/repl/consensus.cpp @@ -233,16 +233,14 @@ namespace mongo { log() << "replSet electCmdReceived couldn't find member with id " << whoid << rsLog; vote = -10000; } - else if( primary && primary == rs._self && rs.lastOpTimeWritten >= hopeful->hbinfo().opTime ) { - // hbinfo is not updated, so we have to check the primary's last optime separately + else if( primary && primary == rs._self) { log() << "I am already primary, " << hopeful->fullName() << " can try again once I've stepped down" << rsLog; vote = -10000; } - else if( primary && primary->hbinfo().opTime >= hopeful->hbinfo().opTime ) { - // other members might be aware of more up-to-date nodes + else if (primary) { log() << hopeful->fullName() << " is trying to elect itself but " << - primary->fullName() << " is already primary and more up-to-date" << rsLog; + primary->fullName() << " is already primary" << rsLog; vote = -10000; } else if( highestPriority && highestPriority->config().priority > hopeful->config().priority) { |