diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2015-09-14 20:39:45 -0400 |
---|---|---|
committer | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2015-09-15 15:49:57 -0400 |
commit | 2b31dabd01e32091c01910ed5038cf8ff9289efa (patch) | |
tree | f72948576b416d6d936c4ca7c1e9969e6f4e44e1 /src/mongo/db/repl/replica_set_config.cpp | |
parent | 266825feecbb38d7526da368b0517f72e728ef18 (diff) | |
download | mongo-2b31dabd01e32091c01910ed5038cf8ff9289efa.tar.gz |
SERVER-18498 Fix heartbeat in protocol version 1
Fix heartbeat for uninitialized config in PV1.
Consider terms when checking remote primary in PV1 heartbeat.
Diffstat (limited to 'src/mongo/db/repl/replica_set_config.cpp')
-rw-r--r-- | src/mongo/db/repl/replica_set_config.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mongo/db/repl/replica_set_config.cpp b/src/mongo/db/repl/replica_set_config.cpp index ffc4d22965a..441cdaf6222 100644 --- a/src/mongo/db/repl/replica_set_config.cpp +++ b/src/mongo/db/repl/replica_set_config.cpp @@ -77,7 +77,7 @@ const std::string kGetLastErrorModesFieldName = "getLastErrorModes"; } // namespace -Status ReplicaSetConfig::initialize(const BSONObj& cfg) { +Status ReplicaSetConfig::initialize(const BSONObj& cfg, bool usePV1ByDefault) { _isInitialized = false; _members.clear(); Status status = @@ -135,8 +135,14 @@ Status ReplicaSetConfig::initialize(const BSONObj& cfg) { // Parse protocol version // status = bsonExtractIntegerField(cfg, kProtocolVersionFieldName, &_protocolVersion); - if (!status.isOK() && status != ErrorCodes::NoSuchKey) { - return status; + if (!status.isOK()) { + if (status != ErrorCodes::NoSuchKey) { + return status; + } + + if (usePV1ByDefault) { + _protocolVersion = 1; + } } // |