diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2020-10-08 00:23:42 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-02-24 01:13:04 +0000 |
commit | 3a6082ee4edc3f13f3f6b2fbddbe04a2dd6f6602 (patch) | |
tree | 3cc099a01f18596a3a507128b488f68fe67a9153 | |
parent | 16ce9754595d39cd093e2a6adc78366db1d46f2b (diff) | |
download | mongo-3a6082ee4edc3f13f3f6b2fbddbe04a2dd6f6602.tar.gz |
SERVER-51163 Mark nodes returning InvalidReplicaSetConfig in heartbeats as down
(cherry picked from commit 28c6948a2a02760a69aaee3875c4b2a427528a5a)
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl_heartbeat_v1_test.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_coordinator.cpp | 6 |
2 files changed, 3 insertions, 5 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl_heartbeat_v1_test.cpp b/src/mongo/db/repl/replication_coordinator_impl_heartbeat_v1_test.cpp index 0ef88f6001c..0c68362e478 100644 --- a/src/mongo/db/repl/replication_coordinator_impl_heartbeat_v1_test.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl_heartbeat_v1_test.cpp @@ -426,7 +426,7 @@ TEST_F(ReplCoordHBV1Test, IgnoreTheContentsOfMetadataWhenItsReplicaSetIdDoesNotM ASSERT_TRUE(members[1].isABSONObj()); auto member = members[1].Obj(); ASSERT_EQ(host2, HostAndPort(member["name"].String())); - ASSERT_EQ(MemberState(MemberState::RS_UNKNOWN).toString(), + ASSERT_EQ(MemberState(MemberState::RS_DOWN).toString(), MemberState(member["state"].numberInt()).toString()); } diff --git a/src/mongo/db/repl/topology_coordinator.cpp b/src/mongo/db/repl/topology_coordinator.cpp index 727270bee7d..d1e2a03f005 100644 --- a/src/mongo/db/repl/topology_coordinator.cpp +++ b/src/mongo/db/repl/topology_coordinator.cpp @@ -755,11 +755,9 @@ HeartbeatResponseAction TopologyCoordinator::processHeartbeatResponse( invariant(hbStats.getLastHeartbeatStartDate() != Date_t()); const bool isUnauthorized = (hbResponse.getStatus().code() == ErrorCodes::Unauthorized) || (hbResponse.getStatus().code() == ErrorCodes::AuthenticationFailed); - const bool isInvalid = hbResponse.getStatus().code() == ErrorCodes::InvalidReplicaSetConfig; - // Replication of auth changes can cause temporary auth failures, and a temporary DNS outage can - // make a node return InvalidReplicaSetConfig if it can't find itself in the config. - if (hbResponse.isOK() || isUnauthorized || isInvalid) { + // Replication of auth changes can cause temporary auth failures. + if (hbResponse.isOK() || isUnauthorized) { hbStats.hit(networkRoundTripTime); } else { hbStats.miss(); |