summaryrefslogtreecommitdiff
path: root/jstests/replsets/chaining_removal.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/replsets/chaining_removal.js')
-rw-r--r--jstests/replsets/chaining_removal.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/jstests/replsets/chaining_removal.js b/jstests/replsets/chaining_removal.js
index 027de0215d6..744b6bb8de5 100644
--- a/jstests/replsets/chaining_removal.js
+++ b/jstests/replsets/chaining_removal.js
@@ -26,6 +26,16 @@
var primary = replTest.getPrimary();
replTest.awaitReplication();
+ // When setting up chaining on slow machines, we do not want slow writes or delayed heartbeats
+ // to cause our nodes to invalidate the sync source provided in the 'replSetSyncFrom' command.
+ // To achieve this, we disable the server parameter 'maxSyncSourceLagSecs' (see
+ // repl_settings_init.cpp and TopologyCoordinatorImpl::Options) in
+ // TopologyCoordinatorImpl::shouldChangeSyncSource().
+ assert.commandWorked(nodes[1].getDB('admin').runCommand(
+ {configureFailPoint: 'disableMaxSyncSourceLagSecs', mode: 'alwaysOn'}));
+ assert.commandWorked(nodes[4].getDB('admin').runCommand(
+ {configureFailPoint: 'disableMaxSyncSourceLagSecs', mode: 'alwaysOn'}));
+
// Force node 1 to sync directly from node 0.
syncFrom(nodes[1], nodes[0], replTest);
@@ -39,6 +49,12 @@
};
assert.writeOK(primary.getDB(name).foo.insert({x: 1}, options));
+ // Re-enable 'maxSyncSourceLagSecs' checking on sync source.
+ assert.commandWorked(nodes[1].getDB('admin').runCommand(
+ {configureFailPoint: 'disableMaxSyncSourceLagSecs', mode: 'off'}));
+ assert.commandWorked(nodes[4].getDB('admin').runCommand(
+ {configureFailPoint: 'disableMaxSyncSourceLagSecs', mode: 'off'}));
+
var config = primary.getDB("local").system.replset.findOne();
config.members.pop();
config.version++;