summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEsha Maharishi <esha.maharishi@mongodb.com>2016-09-30 11:06:53 -0400
committerEsha Maharishi <esha.maharishi@mongodb.com>2016-09-30 17:54:39 -0400
commit99c905a87a620d50d2bad4659978325032372258 (patch)
treea91fd459ff9ee5cf169efd51790aa089e9c05a84
parentcabfdfe829943440a5307335f2ebc0fc1286aa2d (diff)
downloadmongo-99c905a87a620d50d2bad4659978325032372258.tar.gz
SERVER-26309 for renamed tests, change test name in blacklists to match
-rw-r--r--buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml7
-rw-r--r--jstests/libs/override_methods/multiversion_override_balancer_control.js8
-rw-r--r--jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js2
-rw-r--r--jstests/sharding/auth.js2
-rw-r--r--jstests/sharding/authCommands.js7
-rw-r--r--jstests/sharding/autosplit.js (renamed from jstests/sharding/auto1.js)2
-rw-r--r--jstests/sharding/autosplit_heuristics.js2
-rw-r--r--jstests/sharding/autosplit_with_balancer.js (renamed from jstests/sharding/auto2.js)2
-rw-r--r--jstests/sharding/commands_that_write_accept_wc_configRS.js1
-rw-r--r--jstests/sharding/conf_server_write_concern_metadata.js4
-rw-r--r--jstests/sharding/cursor1.js3
-rw-r--r--jstests/sharding/disable_autosplit.js8
-rw-r--r--jstests/sharding/findandmodify2.js2
-rw-r--r--jstests/sharding/jumbo1.js2
-rw-r--r--jstests/sharding/move_chunk_wc.js1
-rw-r--r--jstests/sharding/movechunk_with_default_paranoia.js3
-rw-r--r--jstests/sharding/movechunk_with_moveParanoia.js7
-rw-r--r--jstests/sharding/movechunk_with_noMoveParanoia.js7
-rw-r--r--jstests/sharding/sharding_balance4.js8
-rw-r--r--jstests/sharding/split_with_force.js2
-rw-r--r--jstests/sharding/split_with_force_small.js1
-rw-r--r--jstests/sharding/stale_mongos_updates_and_removes.js2
-rw-r--r--jstests/sharding/top_chunk_autosplit.js17
-rw-r--r--jstests/sharding/write_cmd_auto_split.js2
-rw-r--r--jstests/sharding/zbigMapReduce.js2
-rw-r--r--jstests/tool/dumprestore9.js2
-rw-r--r--src/mongo/shell/servers.js6
-rw-r--r--src/mongo/shell/shardingtest.js35
28 files changed, 100 insertions, 47 deletions
diff --git a/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml b/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml
index d20af7870f9..e2dece0aaa0 100644
--- a/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml
+++ b/buildscripts/resmokeconfig/suites/sharding_continuous_config_stepdown.yml
@@ -12,7 +12,7 @@ selector:
# Count/write/aggregate/group commands against the config shard do not support retries yet
- jstests/sharding/addshard1.js
- jstests/sharding/addshard2.js
- - jstests/sharding/auto1.js
+ - jstests/sharding/autosplit.js
- jstests/sharding/auto_rebalance_parallel.js
- jstests/sharding/auto_rebalance_parallel_replica_sets.js
- jstests/sharding/autosplit_heuristics.js
@@ -57,9 +57,6 @@ selector:
- jstests/sharding/sharding_balance3.js
- jstests/sharding/sharding_balance4.js
- jstests/sharding/sharding_migrate_cursor1.js
- - jstests/sharding/split_with_force.js
- - jstests/sharding/split_with_force_small.js
- - jstests/sharding/stale_mongos_updates_and_removes.js
- jstests/sharding/tag_auto_split.js
- jstests/sharding/tag_auto_split_partial_key.js
- jstests/sharding/tag_range.js
@@ -77,7 +74,7 @@ selector:
# Balancer writes (direct write to config database with no retries)
- jstests/sharding/convert_to_and_from_sharded.js
- jstests/sharding/remove2.js
- - jstests/sharding/auto2.js
+ - jstests/sharding/autosplit_with_balancer.js
- jstests/sharding/features3.js
- jstests/sharding/in_memory_sort_limit.js
- jstests/sharding/parallel.js
diff --git a/jstests/libs/override_methods/multiversion_override_balancer_control.js b/jstests/libs/override_methods/multiversion_override_balancer_control.js
index 0a5252ce0cd..a620f7f4e38 100644
--- a/jstests/libs/override_methods/multiversion_override_balancer_control.js
+++ b/jstests/libs/override_methods/multiversion_override_balancer_control.js
@@ -47,6 +47,14 @@
arguments[0].other.enableBalancer = true;
}
+ // In ShardingTest, enableAutoSplit defaults to the value of enableBalancer. However, this
+ // override causes enableBalancer to always be true when constructing ShardingTest. So, if
+ // enableAutoSplit is not specified, make sure enableAutoSplit defaults to the original
+ // enableBalancer value.
+ if (!("enableAutoSplit" in arguments[0].other)) {
+ arguments[0].other.enableAutoSplit = originalEnableBalancer;
+ }
+
// Construct the original object
originalShardingTest.apply(this, arguments);
diff --git a/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js b/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js
index 7a468b51a10..4831969953e 100644
--- a/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js
+++ b/jstests/noPassthroughWithMongod/sharding_migrate_large_docs.js
@@ -3,8 +3,6 @@
//
var st = new ShardingTest({shards: 2, mongos: 1});
-st.disableAutoSplit();
-st.stopBalancer();
var mongos = st.s0;
var coll = mongos.getCollection("foo.bar");
diff --git a/jstests/sharding/auth.js b/jstests/sharding/auth.js
index 03a3068008c..44cef91233b 100644
--- a/jstests/sharding/auth.js
+++ b/jstests/sharding/auth.js
@@ -37,7 +37,7 @@
name: "auth",
mongos: 1,
shards: 0,
- other: {keyFile: "jstests/libs/key1", chunkSize: 1},
+ other: {keyFile: "jstests/libs/key1", chunkSize: 1, enableAutoSplit: true},
});
if (s.getDB('admin').runCommand('buildInfo').bits < 64) {
diff --git a/jstests/sharding/authCommands.js b/jstests/sharding/authCommands.js
index ba015c556af..4dd36172d85 100644
--- a/jstests/sharding/authCommands.js
+++ b/jstests/sharding/authCommands.js
@@ -7,11 +7,8 @@
var st = new ShardingTest({
shards: 2,
rs: {oplogSize: 10, useHostname: false},
- other: {
- keyFile: 'jstests/libs/key1',
- useHostname: false,
- chunkSize: 2,
- },
+ other:
+ {keyFile: 'jstests/libs/key1', useHostname: false, chunkSize: 2, enableAutoSplit: true},
});
var mongos = st.s;
diff --git a/jstests/sharding/auto1.js b/jstests/sharding/autosplit.js
index 8c5e4510b9b..bb34021487f 100644
--- a/jstests/sharding/auto1.js
+++ b/jstests/sharding/autosplit.js
@@ -4,7 +4,7 @@
(function() {
'use strict';
- var s = new ShardingTest({name: "auto1", shards: 2, mongos: 1});
+ var s = new ShardingTest({name: "auto1", shards: 2, mongos: 1, other: {enableAutoSplit: true}});
assert.commandWorked(s.s0.adminCommand({enablesharding: "test"}));
s.ensurePrimaryShard('test', 'shard0001');
diff --git a/jstests/sharding/autosplit_heuristics.js b/jstests/sharding/autosplit_heuristics.js
index bfde45cfc67..659f74725b0 100644
--- a/jstests/sharding/autosplit_heuristics.js
+++ b/jstests/sharding/autosplit_heuristics.js
@@ -5,7 +5,7 @@
(function() {
'use strict';
- var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: 1}});
+ var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}});
// The balancer is by default stopped, thus it will NOT interfere unpredictably with the chunk
// moves/splits depending on the timing.
diff --git a/jstests/sharding/auto2.js b/jstests/sharding/autosplit_with_balancer.js
index f3d8bf299ec..f1853211e4c 100644
--- a/jstests/sharding/auto2.js
+++ b/jstests/sharding/autosplit_with_balancer.js
@@ -1,6 +1,6 @@
(function() {
- var s = new ShardingTest({name: "auto2", shards: 2, mongos: 2});
+ var s = new ShardingTest({name: "auto2", shards: 2, mongos: 2, other: {enableAutoSplit: true}});
s.adminCommand({enablesharding: "test"});
s.ensurePrimaryShard('test', 'shard0001');
diff --git a/jstests/sharding/commands_that_write_accept_wc_configRS.js b/jstests/sharding/commands_that_write_accept_wc_configRS.js
index 213081c0f2a..4a983a0b7b7 100644
--- a/jstests/sharding/commands_that_write_accept_wc_configRS.js
+++ b/jstests/sharding/commands_that_write_accept_wc_configRS.js
@@ -21,7 +21,6 @@ load('jstests/multiVersion/libs/auth_helpers.js');
configReplSetTestOptions: {settings: {chainingAllowed: false}},
mongos: 1
});
- st.disableAutoSplit();
var mongos = st.s;
var dbName = "wc-test-configRS";
diff --git a/jstests/sharding/conf_server_write_concern_metadata.js b/jstests/sharding/conf_server_write_concern_metadata.js
index 8f2a0063ac7..dd15c5cb179 100644
--- a/jstests/sharding/conf_server_write_concern_metadata.js
+++ b/jstests/sharding/conf_server_write_concern_metadata.js
@@ -1,11 +1,11 @@
/**
* Test write concern with w parameter will not cause an error when writes to mongos would trigger
- * writes to config servers (in this test, split chunks is used).
+ * writes to config servers (in this test, autosplit is used).
*/
(function() {
'use strict';
- var st = new ShardingTest({shards: 1, rs: true, other: {chunkSize: 1}});
+ var st = new ShardingTest({shards: 1, rs: true, other: {chunkSize: 1, enableAutoSplit: true}});
var mongos = st.s;
var testDB = mongos.getDB('test');
diff --git a/jstests/sharding/cursor1.js b/jstests/sharding/cursor1.js
index de39f04841f..0644aee1dca 100644
--- a/jstests/sharding/cursor1.js
+++ b/jstests/sharding/cursor1.js
@@ -4,9 +4,6 @@
var s = new ShardingTest({name: "sharding_cursor1", shards: 2});
- // This test handles chunk splitting manually.
- s.disableAutoSplit();
-
s.config.settings.find().forEach(printjson);
// create a sharded 'test.foo', for the moment with just one chunk
diff --git a/jstests/sharding/disable_autosplit.js b/jstests/sharding/disable_autosplit.js
index d62d41e95f4..d6982c3280a 100644
--- a/jstests/sharding/disable_autosplit.js
+++ b/jstests/sharding/disable_autosplit.js
@@ -1,11 +1,13 @@
-// Tests disabling of autosplit from mongos
+// Tests disabling of autosplit.
(function() {
'use strict';
var chunkSizeMB = 1;
- var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: chunkSizeMB}});
- st.disableAutoSplit();
+ // Autosplit is disabled by default, but specify it anyway in case the default changes,
+ // especially since it defaults to the enableBalancer setting.
+ var st = new ShardingTest(
+ {shards: 1, mongos: 1, other: {chunkSize: chunkSizeMB, enableAutoSplit: false}});
var data = "x";
while (data.length < chunkSizeMB * 1024 * 1024) {
diff --git a/jstests/sharding/findandmodify2.js b/jstests/sharding/findandmodify2.js
index 6df89a73d04..ab706a448c4 100644
--- a/jstests/sharding/findandmodify2.js
+++ b/jstests/sharding/findandmodify2.js
@@ -1,7 +1,7 @@
(function() {
'use strict';
- var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1}});
+ var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}});
assert.commandWorked(s.s0.adminCommand({enablesharding: "test"}));
var db = s.getDB("test");
diff --git a/jstests/sharding/jumbo1.js b/jstests/sharding/jumbo1.js
index 594c8165ab2..315cd3ee6b6 100644
--- a/jstests/sharding/jumbo1.js
+++ b/jstests/sharding/jumbo1.js
@@ -1,7 +1,7 @@
(function() {
'use strict';
- var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1}});
+ var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}});
assert.commandWorked(s.s0.adminCommand({enablesharding: "test"}));
s.ensurePrimaryShard('test', 'shard0001');
diff --git a/jstests/sharding/move_chunk_wc.js b/jstests/sharding/move_chunk_wc.js
index e94e9a01940..54a41c2d9fa 100644
--- a/jstests/sharding/move_chunk_wc.js
+++ b/jstests/sharding/move_chunk_wc.js
@@ -21,7 +21,6 @@ load('jstests/libs/write_concern_util.js');
config: 1,
configReplSetTestOptions: {settings: {chainingAllowed: false}}
});
- st.disableAutoSplit();
var mongos = st.s;
var dbName = "move-chunk-wc-test";
diff --git a/jstests/sharding/movechunk_with_default_paranoia.js b/jstests/sharding/movechunk_with_default_paranoia.js
index 52597fec149..97b8d5c6db1 100644
--- a/jstests/sharding/movechunk_with_default_paranoia.js
+++ b/jstests/sharding/movechunk_with_default_paranoia.js
@@ -2,7 +2,8 @@
* This test checks that moveParanoia defaults to off (ie the moveChunk directory will not
* be created).
*/
-var st = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1}});
+
+var st = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}});
load("jstests/sharding/movechunk_include.js");
setupMoveChunkTest(st);
diff --git a/jstests/sharding/movechunk_with_moveParanoia.js b/jstests/sharding/movechunk_with_moveParanoia.js
index f8c2fd0fbd8..740878507b2 100644
--- a/jstests/sharding/movechunk_with_moveParanoia.js
+++ b/jstests/sharding/movechunk_with_moveParanoia.js
@@ -1,8 +1,11 @@
/**
* This test sets moveParanoia flag and then check that the directory is created with the moved data
*/
-var st = new ShardingTest(
- {shards: 2, mongos: 1, other: {chunkSize: 1, shardOptions: {moveParanoia: ""}}});
+var st = new ShardingTest({
+ shards: 2,
+ mongos: 1,
+ other: {chunkSize: 1, enableAutoSplit: true, shardOptions: {moveParanoia: ""}}
+});
load("jstests/sharding/movechunk_include.js");
setupMoveChunkTest(st);
diff --git a/jstests/sharding/movechunk_with_noMoveParanoia.js b/jstests/sharding/movechunk_with_noMoveParanoia.js
index 4e75421543a..2ca6ef96f16 100644
--- a/jstests/sharding/movechunk_with_noMoveParanoia.js
+++ b/jstests/sharding/movechunk_with_noMoveParanoia.js
@@ -1,8 +1,11 @@
/**
* This test sets moveParanoia flag and then check that the directory is created with the moved data
*/
-var st = new ShardingTest(
- {shards: 2, mongos: 1, other: {chunkSize: 1, shardOptions: {noMoveParanoia: ""}}});
+var st = new ShardingTest({
+ shards: 2,
+ mongos: 1,
+ other: {chunkSize: 1, enableAutoSplit: true, shardOptions: {noMoveParanoia: ""}}
+});
load("jstests/sharding/movechunk_include.js");
setupMoveChunkTest(st);
diff --git a/jstests/sharding/sharding_balance4.js b/jstests/sharding/sharding_balance4.js
index 170448cbf11..4df4171bd39 100644
--- a/jstests/sharding/sharding_balance4.js
+++ b/jstests/sharding/sharding_balance4.js
@@ -1,8 +1,12 @@
// Check that doing updates done during a migrate all go to the right place
(function() {
- var s = new ShardingTest(
- {name: "slow_sharding_balance4", shards: 2, mongos: 1, other: {chunkSize: 1}});
+ var s = new ShardingTest({
+ name: "slow_sharding_balance4",
+ shards: 2,
+ mongos: 1,
+ other: {chunkSize: 1, enableAutoSplit: true}
+ });
s.adminCommand({enablesharding: "test"});
s.ensurePrimaryShard('test', 'shard0001');
diff --git a/jstests/sharding/split_with_force.js b/jstests/sharding/split_with_force.js
index c5bacd2dd28..7a40714c35c 100644
--- a/jstests/sharding/split_with_force.js
+++ b/jstests/sharding/split_with_force.js
@@ -7,8 +7,6 @@ var options = {
};
var st = new ShardingTest({shards: 1, mongos: 1, other: options});
-st.disableAutoSplit();
-st.stopBalancer();
var mongos = st.s0;
var admin = mongos.getDB("admin");
diff --git a/jstests/sharding/split_with_force_small.js b/jstests/sharding/split_with_force_small.js
index ffc0e4d5bbd..2554d41048f 100644
--- a/jstests/sharding/split_with_force_small.js
+++ b/jstests/sharding/split_with_force_small.js
@@ -5,7 +5,6 @@
'use strict';
var st = new ShardingTest({shards: 1, mongos: 1, other: {chunkSize: 1}});
- st.disableAutoSplit();
var mongos = st.s0;
var admin = mongos.getDB("admin");
diff --git a/jstests/sharding/stale_mongos_updates_and_removes.js b/jstests/sharding/stale_mongos_updates_and_removes.js
index dc2fd701a78..0621d44196f 100644
--- a/jstests/sharding/stale_mongos_updates_and_removes.js
+++ b/jstests/sharding/stale_mongos_updates_and_removes.js
@@ -172,7 +172,7 @@ var checkAllUpdateQueries = function(makeMongosStaleFunc) {
};
var st = new ShardingTest({shards: 2, mongos: 2});
-st.disableAutoSplit();
+
var dbName = 'test';
var collNS = dbName + '.foo';
var numShardKeys = 10;
diff --git a/jstests/sharding/top_chunk_autosplit.js b/jstests/sharding/top_chunk_autosplit.js
index 6047e7a948c..2a8e40a787a 100644
--- a/jstests/sharding/top_chunk_autosplit.js
+++ b/jstests/sharding/top_chunk_autosplit.js
@@ -294,7 +294,8 @@ var maxSizeTests = [
var dbName = "TopChunkDB";
var collName = "coll";
-var st = shardSetup({name: "topchunk", shards: 4, chunkSize: 1}, dbName, collName);
+var st = shardSetup(
+ {name: "topchunk", shards: 4, chunkSize: 1, other: {enableAutoSplit: true}}, dbName, collName);
var db = st.getDB(dbName);
var coll = db[collName];
var configDB = st.s.getDB('config');
@@ -310,7 +311,9 @@ for (var i = 0; i < tests.length; i++) {
st.stop();
// Single node shard tests
-st = shardSetup({name: "singleNode", shards: 1, chunkSize: 1}, dbName, collName);
+st = shardSetup({name: "singleNode", shards: 1, chunkSize: 1, other: {enableAutoSplit: true}},
+ dbName,
+ collName);
db = st.getDB(dbName);
coll = db[collName];
configDB = st.s.getDB('config');
@@ -327,8 +330,14 @@ st.stop();
// maxSize test
// To set maxSize, must manually add the shards
-st = shardSetup(
- {name: "maxSize", shards: 2, chunkSize: 1, other: {manualAddShard: true}}, dbName, collName);
+st = shardSetup({
+ name: "maxSize",
+ shards: 2,
+ chunkSize: 1,
+ other: {manualAddShard: true, enableAutoSplit: true}
+},
+ dbName,
+ collName);
db = st.getDB(dbName);
coll = db[collName];
configDB = st.s.getDB('config');
diff --git a/jstests/sharding/write_cmd_auto_split.js b/jstests/sharding/write_cmd_auto_split.js
index 0b340148787..1cf9b5ab39a 100644
--- a/jstests/sharding/write_cmd_auto_split.js
+++ b/jstests/sharding/write_cmd_auto_split.js
@@ -4,7 +4,7 @@
(function() {
'use strict';
- var st = new ShardingTest({shards: 1, other: {chunkSize: 1}});
+ var st = new ShardingTest({shards: 1, other: {chunkSize: 1, enableAutoSplit: true}});
var configDB = st.s.getDB('config');
assert.commandWorked(configDB.adminCommand({enableSharding: 'test'}));
diff --git a/jstests/sharding/zbigMapReduce.js b/jstests/sharding/zbigMapReduce.js
index 9853982d535..ac4380267e8 100644
--- a/jstests/sharding/zbigMapReduce.js
+++ b/jstests/sharding/zbigMapReduce.js
@@ -9,7 +9,7 @@ function setupTest() {
numReplicas: 2,
chunkSize: 1,
rsOptions: {oplogSize: 50},
- enableBalancer: 1
+ enableBalancer: true
}
});
diff --git a/jstests/tool/dumprestore9.js b/jstests/tool/dumprestore9.js
index dfb8f2d0979..9123c75bf04 100644
--- a/jstests/tool/dumprestore9.js
+++ b/jstests/tool/dumprestore9.js
@@ -13,7 +13,7 @@ if (0) {
name: "dumprestore9a",
shards: 2,
mongos: 3,
- other: {chunkSize: 1, enableBalancer: 1}
+ other: {chunkSize: 1, enableBalancer: true}
});
step("Shard collection");
diff --git a/src/mongo/shell/servers.js b/src/mongo/shell/servers.js
index 17d3fdb7c93..5625ae44a80 100644
--- a/src/mongo/shell/servers.js
+++ b/src/mongo/shell/servers.js
@@ -647,6 +647,12 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro
opts.binVersion = MongoRunner.getBinVersionFor(testOptions.mongosBinVersion);
}
+ // If the mongos is being restarted with a newer version, make sure we remove any options
+ // that no longer exist in the newer version.
+ if (opts.restart && MongoRunner.areBinVersionsTheSame('latest', opts.binVersion)) {
+ delete opts.noAutoSplit;
+ }
+
return opts;
};
diff --git a/src/mongo/shell/shardingtest.js b/src/mongo/shell/shardingtest.js
index 42b8c7158d8..bb39563c69e 100644
--- a/src/mongo/shell/shardingtest.js
+++ b/src/mongo/shell/shardingtest.js
@@ -66,6 +66,8 @@
* mongosOptions {Object}: same as the mongos property above.
* Can be used to specify options that are common all mongos.
* enableBalancer {boolean} : if true, enable the balancer
+ * enableAutoSplit {boolean} : if true, enable autosplitting; else, default to the
+ * enableBalancer setting
* manualAddShard {boolean}: shards will not be added if true.
*
* useBridge {boolean}: If true, then a mongobridge process is started for each node in the
@@ -207,10 +209,12 @@ var ShardingTest = function(params) {
* Configures the cluster based on the specified parameters (balancer state, etc).
*/
function _configureCluster() {
- // Disable the balancer unless it is explicitly turned on
if (!otherParams.enableBalancer) {
self.stopBalancer();
}
+ if (!otherParams.enableAutoSplit) {
+ self.disableAutoSplit();
+ }
}
function connectionURLTheSame(a, b) {
@@ -774,6 +778,15 @@ var ShardingTest = function(params) {
if (opts.restart) {
opts = Object.merge(mongos.fullOptions, opts);
+
+ // If the mongos is being restarted with a newer version, make sure we remove any
+ // options that no longer exist in the newer version.
+ // Note: If a jstest specifies the mongos binVersion as an array, calling
+ // MongoRunner.areBinVersionsTheSame() will advance the binVersion iterator over that
+ // array (SERVER-26261).
+ if (MongoRunner.areBinVersionsTheSame('latest', opts.binVersion)) {
+ delete opts.noAutoSplit;
+ }
}
var newConn = MongoRunner.runMongos(opts);
@@ -937,6 +950,15 @@ var ShardingTest = function(params) {
? otherParams.waitForCSRSSecondaries
: true;
+ // Default enableBalancer to false.
+ otherParams.enableBalancer =
+ ("enableBalancer" in otherParams) && (otherParams.enableBalancer === true);
+
+ // Let autosplit behavior match that of the balancer if autosplit is not explicitly set.
+ if (!("enableAutoSplit" in otherParams)) {
+ otherParams.enableAutoSplit = otherParams.enableBalancer;
+ }
+
// Allow specifying mixed-type options like this:
// { mongos : [ { noprealloc : "" } ],
// config : [ { smallfiles : "" } ],
@@ -1329,6 +1351,17 @@ var ShardingTest = function(params) {
options.port = options.port || allocatePort();
+ // TODO(esha): remove after v3.4 ships.
+ // Legacy mongoses use a command line option to disable autosplit instead of reading the
+ // config.settings collection.
+ // Note: If a jstest specifies the mongos binVersion as an array, calling
+ // MongoRunner.areBinVersionsTheSame() will advance the binVersion iterator over that array
+ // (SERVER-26261).
+ if (options.binVersion && MongoRunner.areBinVersionsTheSame('3.2', options.binVersion) &&
+ !otherParams.enableAutoSplit) {
+ options.noAutoSplit = "";
+ }
+
if (otherParams.useBridge) {
var bridgeOptions =
Object.merge(otherParams.bridgeOptions, options.bridgeOptions || {});