summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2013-05-22 17:08:31 -0400
committerEric Milkie <milkie@10gen.com>2013-05-22 17:20:45 -0400
commitd01732d65dea9295ffe08bbbe748136dcd4178bf (patch)
tree16be80eab4d7ddb98ca83644ddd98f68e2951b24
parentc34d5a987b25ec72b989077769435404ad7d3608 (diff)
downloadmongo-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.cpp8
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) {