summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiyuan Zhou <siyuan.zhou@mongodb.com>2020-10-08 00:23:42 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-02-24 01:13:04 +0000
commit3a6082ee4edc3f13f3f6b2fbddbe04a2dd6f6602 (patch)
tree3cc099a01f18596a3a507128b488f68fe67a9153
parent16ce9754595d39cd093e2a6adc78366db1d46f2b (diff)
downloadmongo-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.cpp2
-rw-r--r--src/mongo/db/repl/topology_coordinator.cpp6
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();