diff options
author | Dianna Hohensee <dianna.hohensee@10gen.com> | 2016-11-21 10:28:09 -0500 |
---|---|---|
committer | Dianna Hohensee <dianna.hohensee@10gen.com> | 2016-12-08 14:56:46 -0500 |
commit | 76dc485d830aaaad77c7d0302b62e4d3fb8d2ad8 (patch) | |
tree | 1735a225b4ab478806a5f59a659365b172925002 | |
parent | 3e8068a3df77ce9574c396774bde2d51333802d4 (diff) | |
download | mongo-76dc485d830aaaad77c7d0302b62e4d3fb8d2ad8.tar.gz |
SERVER-26903 reduce electionTimeoutMillis in stepdown suite after ShardingTest runs
-rw-r--r-- | jstests/libs/override_methods/sharding_continuous_config_stepdown.js | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/jstests/libs/override_methods/sharding_continuous_config_stepdown.js b/jstests/libs/override_methods/sharding_continuous_config_stepdown.js index 7a0f35f33fd..d1cb4070ed4 100644 --- a/jstests/libs/override_methods/sharding_continuous_config_stepdown.js +++ b/jstests/libs/override_methods/sharding_continuous_config_stepdown.js @@ -40,6 +40,7 @@ function retryOnNetworkError(func) { var originalReplSetTest = ReplSetTest; var originalShardingTest = ShardingTest; + const stepdownDelaySeconds = 10; const verbositySetting = "{ verbosity: 0, command: {verbosity: 1}, network: {verbosity: 1, asio: {verbosity: 2}}, \ tracking: {verbosity: 1} }"; @@ -71,8 +72,6 @@ tracking: {verbosity: 1} }"; load('jstests/libs/override_methods/sharding_continuous_config_stepdown.js'); - var stepdownDelaySeconds = 10; - print('*** Continuous stepdown thread running with seed node ' + seedNode); try { @@ -169,6 +168,21 @@ tracking: {verbosity: 1} }"; throw new Error('Continuous failover thread is already active'); } + // This suite will step down the config primary every 10 seconds, and + // electionTimeoutMillis defaults to 10 seconds. Set electionTimeoutMillis to 5 seconds, + // so config operations have some time to run before being interrupted by stepdown. + // + // Note: this is done after ShardingTest runs because ShardingTest operations are not + // resilient to stepdowns, which a shorter election timeout can cause to happen on + // slow machines. + var rsconfig = this.getReplSetConfigFromNode(); + rsconfig.settings.electionTimeoutMillis = stepdownDelaySeconds * 1000 / 2; + rsconfig.version++; + reconfig(this, rsconfig); + assert.eq(this.getReplSetConfigFromNode().settings.electionTimeoutMillis, + 5000, + "Failed to lower the electionTimeoutMillis to 5000 milliseconds."); + _scopedPrimaryStepdownThreadStopCounter = new CountDownLatch(1); _scopedPrimaryStepdownThread = new ScopedThread(_continuousPrimaryStepdownFn, @@ -220,15 +234,6 @@ tracking: {verbosity: 1} }"; arguments[0].other.setParameter = {logComponentVerbosity: verbositySetting}; } - // Set electionTimeoutMillis to 5 seconds, from 10, so that chunk migrations don't - // time out because of the CSRS primary being down so often for so long. - arguments[0].configReplSetTestOptions = - Object.merge(arguments[0].configReplSetTestOptions, { - settings: { - electionTimeoutMillis: 5000, - }, - }); - // Construct the original object originalShardingTest.apply(this, arguments); @@ -244,10 +249,6 @@ tracking: {verbosity: 1} }"; }; - assert.eq(this.configRS.getReplSetConfigFromNode().settings.electionTimeoutMillis, - 5000, - "Failed to set the electionTimeoutMillis to 5000 milliseconds"); - // Start the continuous config server stepdown thread this.configRS.startContinuousFailover(); }; |