summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/replica_set_config.cpp
diff options
context:
space:
mode:
authorSiyuan Zhou <siyuan.zhou@mongodb.com>2015-09-14 20:39:45 -0400
committerSiyuan Zhou <siyuan.zhou@mongodb.com>2015-09-15 15:49:57 -0400
commit2b31dabd01e32091c01910ed5038cf8ff9289efa (patch)
treef72948576b416d6d936c4ca7c1e9969e6f4e44e1 /src/mongo/db/repl/replica_set_config.cpp
parent266825feecbb38d7526da368b0517f72e728ef18 (diff)
downloadmongo-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.cpp12
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;
+ }
}
//