diff options
-rw-r--r-- | src/mongo/db/repl/topology_coordinator_impl.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp | 10 |
2 files changed, 1 insertions, 12 deletions
diff --git a/src/mongo/db/repl/topology_coordinator_impl.cpp b/src/mongo/db/repl/topology_coordinator_impl.cpp index d05792395bb..479f8bc1181 100644 --- a/src/mongo/db/repl/topology_coordinator_impl.cpp +++ b/src/mongo/db/repl/topology_coordinator_impl.cpp @@ -1079,10 +1079,9 @@ HeartbeatResponseAction TopologyCoordinatorImpl::_updatePrimaryFromHBDataV1( // Priority takeover when the replset is stable. // // Take over the primary only if the remote primary is in the latest term I know. - // This is done only when we get a heartbeat response from the primary. // Otherwise, there must be an outstanding election, which may succeed or not, but // the remote primary will become aware of that election eventually and step down. - if (_hbdata[primaryIndex].getTerm() == _term && updatedConfigIndex == primaryIndex && + if (_hbdata[primaryIndex].getTerm() == _term && _rsConfig.getMemberAt(primaryIndex).getPriority() < _rsConfig.getMemberAt(_selfIndex).getPriority()) { LOG(4) << "I can take over the primary due to higher priority." diff --git a/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp b/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp index 10dcad1ad5f..32e258ee2b0 100644 --- a/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp +++ b/src/mongo/db/repl/topology_coordinator_impl_v1_test.cpp @@ -2757,16 +2757,6 @@ TEST_F(HeartbeatResponseTestV1, UpdateHeartbeatDataTermPreventsPriorityTakeover) ASSERT_EQUALS(HeartbeatResponseAction::PriorityTakeover, nextAction.getAction()); ASSERT_EQUALS(2, getCurrentPrimaryIndex()); - // Heartbeat from a secondary node shouldn't schedule a priority takeover. - nextAction = receiveUpHeartbeat(HostAndPort("host1"), - "rs0", - MemberState::RS_SECONDARY, - election, - election, - lastOpTimeApplied); - ASSERT_NO_ACTION(nextAction.getAction()); - ASSERT_EQUALS(2, getCurrentPrimaryIndex()); - now()++; // Host 1 starts an election due to higher priority by sending vote requests. // Vote request updates my term. |