diff options
author | Andy Schwerin <schwerin@mongodb.com> | 2014-11-24 17:57:45 -0500 |
---|---|---|
committer | Andy Schwerin <schwerin@mongodb.com> | 2015-01-14 15:06:28 -0500 |
commit | 21a49b672559fc6d818b920d52ec5b2035f559f3 (patch) | |
tree | 93897c578130c75d97953741488eb9cdd17b39cb | |
parent | a7d57ad27c382de82e9cb93bf983a80fd9ac9899 (diff) | |
download | mongo-21a49b672559fc6d818b920d52ec5b2035f559f3.tar.gz |
SERVER-16315 Nodes should not threaten to veto nodes whose config version is higher than their own.
-rw-r--r-- | src/mongo/db/repl/consensus.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/db/repl/consensus.cpp b/src/mongo/db/repl/consensus.cpp index fc89d906a9d..c20a4216f3f 100644 --- a/src/mongo/db/repl/consensus.cpp +++ b/src/mongo/db/repl/consensus.cpp @@ -57,6 +57,12 @@ namespace mongo { return false; } + int cfgver = cmdObj["cfgver"].Int(); + if (theReplSet->config().version < cfgver) { + // Our config is stale; do not veto. + return false; + } + unsigned id = cmdObj["id"].Int(); const Member* primary = theReplSet->box.getPrimary(); const Member* hopeful = theReplSet->findById(id); |