diff options
author | Marcos José Grillo Ramírez <marcos.grillo@mongodb.com> | 2020-07-09 18:23:22 +0200 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-07-17 11:43:50 +0000 |
commit | 5ed7de1446262088dfa8ea420a7d9af4d92ceed7 (patch) | |
tree | 6443e7cbc3e4674ab7dc25221317024921407f31 | |
parent | 8d6112714189fdb6c652ad06a9496c5ade6c0cdc (diff) | |
download | mongo-5ed7de1446262088dfa8ea420a7d9af4d92ceed7.tar.gz |
SERVER-49311 Prevent the PeriodicShardedIndexConsistencyChecker cause failures on tests that require no metadata refresh to be performed until needed
5 files changed, 34 insertions, 26 deletions
diff --git a/jstests/sharding/change_streams_primary_shard_unaware.js b/jstests/sharding/change_streams_primary_shard_unaware.js index 79829362794..f7f9420db34 100644 --- a/jstests/sharding/change_streams_primary_shard_unaware.js +++ b/jstests/sharding/change_streams_primary_shard_unaware.js @@ -28,6 +28,12 @@ function isShardAware(shard, coll) { return res.metadata.collVersion != undefined; } +// Disable checking for index consistency to ensure that the config server doesn't trigger a +// StaleShardVersion exception on shard0 and cause it to refresh its sharding metadata. +const nodeOptions = { + setParameter: {enableShardedIndexConsistencyCheck: false} +}; + const testName = "change_streams_primary_shard_unaware"; const st = new ShardingTest({ shards: 2, @@ -37,13 +43,9 @@ const st = new ShardingTest({ // Use a higher frequency for periodic noops to speed up the test. setParameter: {periodicNoopIntervalSecs: 1, writePeriodicNoops: true}, }, + other: {configOptions: nodeOptions} }); -// Disable checking for index consistency to ensure that the config server doesn't trigger a -// StaleShardVersion exception on shard0 and cause it to refresh its sharding metadata. -st._configServers.forEach( - config => config.adminCommand({setParameter: 1, enableShardedIndexConsistencyCheck: false})); - const mongosDB = st.s0.getDB(testName); // Ensure that shard0 is the primary shard. diff --git a/jstests/sharding/index_commands_shard_targeting.js b/jstests/sharding/index_commands_shard_targeting.js index 3f588e941bf..271dc6fdbdb 100644 --- a/jstests/sharding/index_commands_shard_targeting.js +++ b/jstests/sharding/index_commands_shard_targeting.js @@ -103,13 +103,14 @@ function assertCommandBlocksIfCriticalSectionInProgress( joinMoveChunk(); } -const numShards = 3; -const st = new ShardingTest({shards: numShards}); - // Disable checking for index consistency to ensure that the config server doesn't trigger a // StaleShardVersion exception on shards and cause them to refresh their sharding metadata. -st._configServers.forEach( - config => config.adminCommand({setParameter: 1, enableShardedIndexConsistencyCheck: false})); +const nodeOptions = { + setParameter: {enableShardedIndexConsistencyCheck: false} +}; + +const numShards = 3; +const st = new ShardingTest({shards: numShards, other: {configOptions: nodeOptions}}); const allShards = []; for (let i = 0; i < numShards; i++) { diff --git a/jstests/sharding/list_indexes_shard_targeting.js b/jstests/sharding/list_indexes_shard_targeting.js index 6914d8694d1..a5cd09efdf9 100644 --- a/jstests/sharding/list_indexes_shard_targeting.js +++ b/jstests/sharding/list_indexes_shard_targeting.js @@ -12,16 +12,17 @@ load("jstests/libs/fail_point_util.js"); // This test makes shards have inconsistent indexes. TestData.skipCheckingIndexesConsistentAcrossCluster = true; -const st = new ShardingTest({shards: 3}); +// Disable checking for index consistency to ensure that the config server doesn't trigger a +// StaleShardVersion exception on shards and cause them to refresh their sharding metadata. +const nodeOptions = { + setParameter: {enableShardedIndexConsistencyCheck: false} +}; + +const st = new ShardingTest({shards: 3, other: {configOptions: nodeOptions}}); const dbName = "test"; const collName = "user"; const ns = dbName + "." + collName; -// Disable checking for index consistency to ensure that the config server doesn't trigger a -// StaleShardVersion exception on shards and cause them to refresh their sharding metadata. -st._configServers.forEach( - config => config.adminCommand({setParameter: 1, enableShardedIndexConsistencyCheck: false})); - assert.commandWorked(st.s.adminCommand({enableSharding: dbName})); st.ensurePrimaryShard(dbName, st.shard0.shardName); diff --git a/jstests/sharding/query/lookup_mongod_unaware.js b/jstests/sharding/query/lookup_mongod_unaware.js index 290d074ee47..04b127f5443 100644 --- a/jstests/sharding/query/lookup_mongod_unaware.js +++ b/jstests/sharding/query/lookup_mongod_unaware.js @@ -39,17 +39,15 @@ function restartPrimaryShard(rs, localColl, foreignColl) { true); } -const testName = "lookup_stale_mongod"; -const st = new ShardingTest({ - shards: 2, - mongos: 2, - rs: {nodes: 1}, -}); - // Disable checking for index consistency to ensure that the config server doesn't trigger a // StaleShardVersion exception on shard0 and cause it to refresh its sharding metadata. -st._configServers.forEach( - config => config.adminCommand({setParameter: 1, enableShardedIndexConsistencyCheck: false})); +const nodeOptions = { + setParameter: {enableShardedIndexConsistencyCheck: false} +}; + +const testName = "lookup_stale_mongod"; +const st = + new ShardingTest({shards: 2, mongos: 2, rs: {nodes: 1}, other: {configOptions: nodeOptions}}); // Set the parameter allowing sharded $lookup on all nodes. setParameterOnAllHosts(DiscoverTopology.findNonConfigNodes(st.s0).concat([st.s1.host]), diff --git a/jstests/sharding/stale_mongos_and_restarted_shards_agree_on_shard_version.js b/jstests/sharding/stale_mongos_and_restarted_shards_agree_on_shard_version.js index 986d0407590..f1c473e372d 100644 --- a/jstests/sharding/stale_mongos_and_restarted_shards_agree_on_shard_version.js +++ b/jstests/sharding/stale_mongos_and_restarted_shards_agree_on_shard_version.js @@ -16,7 +16,13 @@ load('jstests/libs/parallel_shell_helpers.js'); load('jstests/libs/fail_point_util.js'); -const st = new ShardingTest({shards: 2, mongos: 2}); +// Disable checking for index consistency to ensure that the config server doesn't trigger a +// StaleShardVersion exception on the shards and cause them to refresh theirsharding metadata. +const nodeOptions = { + setParameter: {enableShardedIndexConsistencyCheck: false} +}; + +const st = new ShardingTest({shards: 2, mongos: 2, other: {configOptions: nodeOptions}}); // Used to get the shard destination ids for the moveChunks commands const shard0Name = st.shard0.shardName; |