summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaitlin Mahar <kaitlin.mahar@mongodb.com>2024-04-03 15:30:20 -0400
committerMongoDB Bot <mongo-bot@mongodb.com>2024-04-11 19:39:50 +0000
commited8e56db19a0e6a33628f6c460c31ebd431b6193 (patch)
tree48cf98007ca405e1c76c7ad101b875bb55824c58
parent4302b5749c563e931cd8a58f1ba6764d5993092f (diff)
SERVER-88864 Make nodes_eventually_sync_from_closer_data_center.js more robust to transient slow heartbeats (#20677)r7.0.9-rc0
GitOrigin-RevId: d1e1ef429d689240089187289fd6a379a282c325 (cherry picked from commit 0348832e0d5796ff6f70f84827e832b691027f26)
-rw-r--r--jstests/replsets/nodes_eventually_sync_from_closer_data_center.js8
1 files changed, 7 insertions, 1 deletions
diff --git a/jstests/replsets/nodes_eventually_sync_from_closer_data_center.js b/jstests/replsets/nodes_eventually_sync_from_closer_data_center.js
index 8ba24bdaa9b..c29e7705614 100644
--- a/jstests/replsets/nodes_eventually_sync_from_closer_data_center.js
+++ b/jstests/replsets/nodes_eventually_sync_from_closer_data_center.js
@@ -105,7 +105,13 @@ assert.soon(() => {
const syncSourcePingTime = replSetGetStatus.members[0].pingMs;
const receivedSyncSourceHb = (syncSourcePingTime > 60);
- return (receivedCentralHb && receivedSyncSourceHb);
+ // Wait for enough heartbeat's from the desired sync source so that our understanding of the
+ // ping time to that node is at least 'changeSyncSourceThresholdMillis' less than the ping time
+ // to our current sync source.
+ const centralSecondaryPingTime = replSetGetStatus.members[1].pingMs;
+ const exceedsChangeSyncSourceThreshold = (syncSourcePingTime - centralSecondaryPingTime > 5);
+
+ return (receivedCentralHb && receivedSyncSourceHb && exceedsChangeSyncSourceThreshold);
});
const replSetGetStatus = assert.commandWorked(testNode.adminCommand({replSetGetStatus: 1}));