diff options
author | jannaerin <golden.janna@gmail.com> | 2018-02-07 17:38:49 -0500 |
---|---|---|
committer | jannaerin <golden.janna@gmail.com> | 2018-03-09 00:40:40 -0500 |
commit | da1e0304e8eb91711ea1c78eb8f62538b53680e7 (patch) | |
tree | e55d32a40a76a39e01d8848c5a17d97ad640b18e /jstests/sharding | |
parent | 0d5370783beeb4936a181dd2f69387da4b5e816c (diff) | |
download | mongo-da1e0304e8eb91711ea1c78eb8f62538b53680e7.tar.gz |
SERVER-32052 Update ShardingTest to default to starting shard servers as replica sets
Diffstat (limited to 'jstests/sharding')
155 files changed, 631 insertions, 495 deletions
diff --git a/jstests/sharding/SERVER-7379.js b/jstests/sharding/SERVER-7379.js index a98161f101e..ed30be53bc6 100644 --- a/jstests/sharding/SERVER-7379.js +++ b/jstests/sharding/SERVER-7379.js @@ -1,7 +1,7 @@ var st = new ShardingTest({shards: 2}); st.adminCommand({enablesharding: "test"}); -st.ensurePrimaryShard('test', 'shard0001'); +st.ensurePrimaryShard('test', st.shard1.shardName); st.adminCommand( {shardcollection: "test.offerChange", key: {"categoryId": 1, "store": 1, "_id": 1}}); diff --git a/jstests/sharding/advance_cluster_time_action_type.js b/jstests/sharding/advance_cluster_time_action_type.js index d01357ec338..fac7f803774 100644 --- a/jstests/sharding/advance_cluster_time_action_type.js +++ b/jstests/sharding/advance_cluster_time_action_type.js @@ -5,8 +5,16 @@ (function() { "use strict"; - let st = new ShardingTest( - {mongos: 1, config: 1, shards: 1, keyFile: 'jstests/libs/key1', mongosWaitsForKeys: true}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + let st = new ShardingTest({ + mongos: 1, + config: 1, + shards: 1, + keyFile: 'jstests/libs/key1', + mongosWaitsForKeys: true, + other: {shardAsReplicaSet: false} + }); + let adminDB = st.s.getDB('admin'); assert.commandWorked(adminDB.runCommand({createUser: "admin", pwd: "admin", roles: ["root"]})); diff --git a/jstests/sharding/advance_logical_time_with_valid_signature.js b/jstests/sharding/advance_logical_time_with_valid_signature.js index ef2f5e44e81..59e8449fac1 100644 --- a/jstests/sharding/advance_logical_time_with_valid_signature.js +++ b/jstests/sharding/advance_logical_time_with_valid_signature.js @@ -13,8 +13,11 @@ st._configServers.forEach(function(configSvr) { configSvr.disconnect(st.s1); }); - st._connections.forEach(function(conn) { - conn.disconnect(st.s1); + + st._rsObjects.forEach(function(rsNodes) { + rsNodes.nodes.forEach(function(conn) { + conn.disconnect(st.s1); + }); }); let connectedDB = st.s0.getDB("test"); diff --git a/jstests/sharding/agg_sort.js b/jstests/sharding/agg_sort.js index 2f2503e63e1..2aebb8e0ded 100644 --- a/jstests/sharding/agg_sort.js +++ b/jstests/sharding/agg_sort.js @@ -10,7 +10,7 @@ coll.drop(); assert.commandWorked(shardingTest.s0.adminCommand({enableSharding: db.getName()})); - shardingTest.ensurePrimaryShard(db.getName(), 'shard0001'); + shardingTest.ensurePrimaryShard(db.getName(), shardingTest.shard1.shardName); assert.commandWorked( shardingTest.s0.adminCommand({shardCollection: coll.getFullName(), key: {_id: 1}})); diff --git a/jstests/sharding/allow_partial_results.js b/jstests/sharding/allow_partial_results.js index 58e5aab6e06..e7bc96ea151 100644 --- a/jstests/sharding/allow_partial_results.js +++ b/jstests/sharding/allow_partial_results.js @@ -12,7 +12,8 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; const collName = "foo"; const ns = dbName + "." + collName; - const st = new ShardingTest({shards: 2}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + const st = new ShardingTest({shards: 2, other: {shardAsReplicaSet: false}}); jsTest.log("Insert some data."); const nDocs = 100; diff --git a/jstests/sharding/auth2.js b/jstests/sharding/auth2.js index 41e18aa9c80..f3ac5caf1c7 100644 --- a/jstests/sharding/auth2.js +++ b/jstests/sharding/auth2.js @@ -1,9 +1,15 @@ (function() { 'use strict'; + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. var st = new ShardingTest({ shards: 2, - other: {chunkSize: 1, useHostname: true, keyFile: 'jstests/libs/key1'}, + other: { + chunkSize: 1, + useHostname: true, + keyFile: 'jstests/libs/key1', + shardAsReplicaSet: false + }, }); var mongos = st.s; diff --git a/jstests/sharding/authConnectionHook.js b/jstests/sharding/authConnectionHook.js index 24b512b6f18..6655d4d5248 100644 --- a/jstests/sharding/authConnectionHook.js +++ b/jstests/sharding/authConnectionHook.js @@ -16,8 +16,16 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; (function() { 'use strict'; - var st = new ShardingTest( - {shards: 2, other: {keyFile: 'jstests/libs/key1', useHostname: true, chunkSize: 1}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest({ + shards: 2, + other: { + keyFile: 'jstests/libs/key1', + useHostname: true, + chunkSize: 1, + shardAsReplicaSet: false + } + }); var mongos = st.s; var adminDB = mongos.getDB('admin'); diff --git a/jstests/sharding/auth_add_shard.js b/jstests/sharding/auth_add_shard.js index c08b69b9afa..f898f5caecc 100644 --- a/jstests/sharding/auth_add_shard.js +++ b/jstests/sharding/auth_add_shard.js @@ -14,7 +14,9 @@ var adminUser = {db: "admin", username: "foo", password: "bar"}; // set up a 2 shard cluster with keyfile - var st = new ShardingTest({shards: 1, mongos: 1, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest( + {shards: 1, mongos: 1, other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false}}); var mongos = st.s0; var admin = mongos.getDB("admin"); diff --git a/jstests/sharding/auth_copydb.js b/jstests/sharding/auth_copydb.js index 35f5295d0d3..1c732546b2b 100644 --- a/jstests/sharding/auth_copydb.js +++ b/jstests/sharding/auth_copydb.js @@ -3,7 +3,9 @@ 'use strict'; load('jstests/libs/feature_compatibility_version.js'); - var st = new ShardingTest({shards: 1, mongos: 1, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest( + {shards: 1, mongos: 1, other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false}}); var mongos = st.s0; var destAdminDB = mongos.getDB('admin'); var destTestDB = mongos.getDB('test'); diff --git a/jstests/sharding/auth_no_config_primary.js b/jstests/sharding/auth_no_config_primary.js index e06527c738b..cb71ca0ef74 100644 --- a/jstests/sharding/auth_no_config_primary.js +++ b/jstests/sharding/auth_no_config_primary.js @@ -14,7 +14,9 @@ TestData.skipCheckDBHashes = true; (function() { 'use strict'; - var st = new ShardingTest({shards: 1, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest( + {shards: 1, other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false}}); st.s.getDB('admin').createUser({user: 'root', pwd: 'pass', roles: ['root']}); st.s.getDB('admin').auth('root', 'pass'); diff --git a/jstests/sharding/auth_sharding_cmd_metadata.js b/jstests/sharding/auth_sharding_cmd_metadata.js index 73dea60d1a7..352c31d199c 100644 --- a/jstests/sharding/auth_sharding_cmd_metadata.js +++ b/jstests/sharding/auth_sharding_cmd_metadata.js @@ -5,7 +5,9 @@ "use strict"; - var st = new ShardingTest({shards: 1, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest( + {shards: 1, other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false}}); var adminUser = {db: "admin", username: "foo", password: "bar"}; diff --git a/jstests/sharding/auth_slaveok_routing.js b/jstests/sharding/auth_slaveok_routing.js index 51cfd97f62f..c2cb71baf38 100644 --- a/jstests/sharding/auth_slaveok_routing.js +++ b/jstests/sharding/auth_slaveok_routing.js @@ -39,7 +39,9 @@ } var rsOpts = {oplogSize: 50}; - var st = new ShardingTest({shards: 1, rs: rsOpts, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest( + {shards: 1, rs: rsOpts, other: {keyFile: 'jstests/libs/key1', ShardAsReplicaSet: false}}); var mongos = st.s; var replTest = st.rs0; diff --git a/jstests/sharding/authmr.js b/jstests/sharding/authmr.js index 82f0b40b2fc..0f444f6208d 100644 --- a/jstests/sharding/authmr.js +++ b/jstests/sharding/authmr.js @@ -28,8 +28,13 @@ assert.writeOK(collection.insert(obj)); } - var cluster = new ShardingTest( - {name: "authmr", shards: 1, mongos: 1, other: {keyFile: "jstests/libs/key1"}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var cluster = new ShardingTest({ + name: "authmr", + shards: 1, + mongos: 1, + other: {keyFile: "jstests/libs/key1", shardAsReplicaSet: false} + }); // Set up the test data. (function() { diff --git a/jstests/sharding/authwhere.js b/jstests/sharding/authwhere.js index 71a62c896c0..95e0b0d7b45 100644 --- a/jstests/sharding/authwhere.js +++ b/jstests/sharding/authwhere.js @@ -28,8 +28,13 @@ assert.writeOK(collection.insert(obj)); } - var cluster = new ShardingTest( - {name: "authwhere", shards: 1, mongos: 1, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var cluster = new ShardingTest({ + name: "authwhere", + shards: 1, + mongos: 1, + other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false} + }); // Set up the test data. (function() { diff --git a/jstests/sharding/auto_rebalance_parallel.js b/jstests/sharding/auto_rebalance_parallel.js index c7078a6898a..c27fef1fa31 100644 --- a/jstests/sharding/auto_rebalance_parallel.js +++ b/jstests/sharding/auto_rebalance_parallel.js @@ -26,7 +26,7 @@ assert.commandWorked(st.splitAt(collName, {Key: 20})); assert.commandWorked(st.splitAt(collName, {Key: 30})); - // Move two of the chunks to shard0001 so we have option to do parallel balancing + // Move two of the chunks to st.shard1.shardName so we have option to do parallel balancing assert.commandWorked(st.moveChunk(collName, {Key: 20}, st.shard1.shardName)); assert.commandWorked(st.moveChunk(collName, {Key: 30}, st.shard1.shardName)); diff --git a/jstests/sharding/auto_rebalance_parallel_replica_sets.js b/jstests/sharding/auto_rebalance_parallel_replica_sets.js index 15215f3e38f..965219c56ff 100644 --- a/jstests/sharding/auto_rebalance_parallel_replica_sets.js +++ b/jstests/sharding/auto_rebalance_parallel_replica_sets.js @@ -26,7 +26,7 @@ assert.commandWorked(st.splitAt('TestDB.TestColl', {Key: 20})); assert.commandWorked(st.splitAt('TestDB.TestColl', {Key: 30})); - // Move two of the chunks to shard0001 so we have option to do parallel balancing + // Move two of the chunks to st.shard1.shardName so we have option to do parallel balancing assert.commandWorked(st.moveChunk('TestDB.TestColl', {Key: 20}, st.shard1.shardName)); assert.commandWorked(st.moveChunk('TestDB.TestColl', {Key: 30}, st.shard1.shardName)); diff --git a/jstests/sharding/autosplit.js b/jstests/sharding/autosplit.js index 52cec4ac859..42128b4ede0 100644 --- a/jstests/sharding/autosplit.js +++ b/jstests/sharding/autosplit.js @@ -12,7 +12,7 @@ }); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: "test.foo", key: {num: 1}})); var bigString = ""; diff --git a/jstests/sharding/autosplit_with_balancer.js b/jstests/sharding/autosplit_with_balancer.js index 7130925edf2..c6bce40aa9a 100644 --- a/jstests/sharding/autosplit_with_balancer.js +++ b/jstests/sharding/autosplit_with_balancer.js @@ -4,7 +4,7 @@ var s = new ShardingTest({shards: 2, mongos: 2, other: {enableAutoSplit: true}}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {num: 1}}); var bigString = ""; diff --git a/jstests/sharding/balancer_window.js b/jstests/sharding/balancer_window.js index b9082134483..a60654b7d89 100644 --- a/jstests/sharding/balancer_window.js +++ b/jstests/sharding/balancer_window.js @@ -52,7 +52,7 @@ configDB.adminCommand({split: 'test.user', middle: {_id: x}}); } - var shard0Chunks = configDB.chunks.find({ns: 'test.user', shard: 'shard0000'}).count(); + var shard0Chunks = configDB.chunks.find({ns: 'test.user', shard: st.shard0.shardName}).count(); var startDate = new Date(); var hourMinStart = new HourAndMinute(startDate.getHours(), startDate.getMinutes()); @@ -70,7 +70,8 @@ st.awaitBalancerRound(); - var shard0ChunksAfter = configDB.chunks.find({ns: 'test.user', shard: 'shard0000'}).count(); + var shard0ChunksAfter = + configDB.chunks.find({ns: 'test.user', shard: st.shard0.shardName}).count(); assert.eq(shard0Chunks, shard0ChunksAfter); assert.writeOK(configDB.settings.update( @@ -85,7 +86,7 @@ st.awaitBalancerRound(); - shard0ChunksAfter = configDB.chunks.find({ns: 'test.user', shard: 'shard0000'}).count(); + shard0ChunksAfter = configDB.chunks.find({ns: 'test.user', shard: st.shard0.shardName}).count(); assert.neq(shard0Chunks, shard0ChunksAfter); st.stop(); diff --git a/jstests/sharding/basic_drop_coll.js b/jstests/sharding/basic_drop_coll.js index 1f2c1609969..4ac0105ed57 100644 --- a/jstests/sharding/basic_drop_coll.js +++ b/jstests/sharding/basic_drop_coll.js @@ -20,17 +20,17 @@ // Test dropping a sharded collection. assert.commandWorked(st.s.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); st.s.adminCommand({shardCollection: 'test.user', key: {_id: 1}}); st.s.adminCommand({split: 'test.user', middle: {_id: 0}}); assert.commandWorked( - st.s.adminCommand({moveChunk: 'test.user', find: {_id: 0}, to: 'shard0001'})); + st.s.adminCommand({moveChunk: 'test.user', find: {_id: 0}, to: st.shard1.shardName})); assert.writeOK(testDB.user.insert({_id: 10})); assert.writeOK(testDB.user.insert({_id: -10})); - assert.neq(null, st.d0.getDB('test').user.findOne({_id: -10})); - assert.neq(null, st.d1.getDB('test').user.findOne({_id: 10})); + assert.neq(null, st.shard0.getDB('test').user.findOne({_id: -10})); + assert.neq(null, st.shard1.getDB('test').user.findOne({_id: 10})); var configDB = st.s.getDB('config'); var collDoc = configDB.collections.findOne({_id: 'test.user'}); @@ -41,8 +41,8 @@ assert.commandWorked(testDB.runCommand({drop: 'user'})); - assert.eq(null, st.d0.getDB('test').user.findOne()); - assert.eq(null, st.d1.getDB('test').user.findOne()); + assert.eq(null, st.shard0.getDB('test').user.findOne()); + assert.eq(null, st.shard1.getDB('test').user.findOne()); // Call drop again to verify that the command is idempotent. assert.commandWorked(testDB.runCommand({drop: 'user'})); diff --git a/jstests/sharding/basic_sharding_params.js b/jstests/sharding/basic_sharding_params.js index 1c1fb11cb11..3e71167cdd6 100644 --- a/jstests/sharding/basic_sharding_params.js +++ b/jstests/sharding/basic_sharding_params.js @@ -6,11 +6,12 @@ 'use strict'; function shardingTestUsingObjects() { + // TODO: SERVER-33444 remove shardAsReplicaSet: false var st = new ShardingTest({ - mongos: {s0: {verbose: 6}, s1: {verbose: 5}}, config: {c0: {verbose: 4}}, - shards: {d0: {verbose: 3}, rs1: {nodes: {d0: {verbose: 2}, a1: {verbose: 1}}}} + shards: {d0: {verbose: 3}, rs1: {nodes: {d0: {verbose: 2}, a1: {verbose: 1}}}}, + other: {shardAsReplicaSet: false} }); var s0 = st.s0; @@ -42,10 +43,12 @@ } function shardingTestUsingArrays() { + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. var st = new ShardingTest({ mongos: [{verbose: 5}, {verbose: 4}], config: [{verbose: 3}], - shards: [{verbose: 2}, {verbose: 1}] + shards: [{verbose: 2}, {verbose: 1}], + other: {shardAsReplicaSet: false} }); var s0 = st.s0; diff --git a/jstests/sharding/basic_split.js b/jstests/sharding/basic_split.js index 0fb2a570f2b..cb86e2d34b0 100644 --- a/jstests/sharding/basic_split.js +++ b/jstests/sharding/basic_split.js @@ -41,7 +41,7 @@ // Insert documents large enough to fill up a chunk, but do it directly in the shard in order // to bypass the auto-split logic. var kiloDoc = new Array(1024).join('x'); - var testDB = st.d0.getDB('test'); + var testDB = st.rs0.getPrimary().getDB('test'); var bulk = testDB.user.initializeUnorderedBulkOp(); for (var x = -1200; x < 1200; x++) { bulk.insert({_id: x, val: kiloDoc}); diff --git a/jstests/sharding/batch_write_command_sharded.js b/jstests/sharding/batch_write_command_sharded.js index a0d4b6356f1..cb3b4cd21d6 100644 --- a/jstests/sharding/batch_write_command_sharded.js +++ b/jstests/sharding/batch_write_command_sharded.js @@ -31,7 +31,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; var coll = mongos.getCollection("foo.bar"); assert.commandWorked(admin.runCommand({enableSharding: coll.getDB().toString()})); - st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); + st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); assert.commandWorked(admin.runCommand({shardCollection: coll.toString(), key: {_id: 1}})); // diff --git a/jstests/sharding/bouncing_count.js b/jstests/sharding/bouncing_count.js index ec2451adcba..4df4a735228 100644 --- a/jstests/sharding/bouncing_count.js +++ b/jstests/sharding/bouncing_count.js @@ -8,7 +8,8 @@ (function() { 'use strict'; - var st = new ShardingTest({shards: 10, mongos: 3}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest({shards: 10, mongos: 3, other: {shardAsReplicaSet: false}}); var mongosA = st.s0; var mongosB = st.s1; diff --git a/jstests/sharding/bulk_insert.js b/jstests/sharding/bulk_insert.js index c0cffeeb05f..02cb8e47226 100644 --- a/jstests/sharding/bulk_insert.js +++ b/jstests/sharding/bulk_insert.js @@ -2,7 +2,8 @@ (function() { 'use strict'; - var st = new ShardingTest({shards: 2, mongos: 2}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest({shards: 2, mongos: 2, other: {shardAsReplicaSet: false}}); var mongos = st.s; var staleMongos = st.s1; diff --git a/jstests/sharding/change_stream_enforce_max_time_ms_on_mongos.js b/jstests/sharding/change_stream_enforce_max_time_ms_on_mongos.js index bc22369bd8e..abdf387faa3 100644 --- a/jstests/sharding/change_stream_enforce_max_time_ms_on_mongos.js +++ b/jstests/sharding/change_stream_enforce_max_time_ms_on_mongos.js @@ -31,7 +31,7 @@ const shard0DB = st.shard0.getDB(jsTestName()); const shard1DB = st.shard1.getDB(jsTestName()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -43,7 +43,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey] chunk to shard0001. + // Move the [0, MaxKey] chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/change_stream_invalidation.js b/jstests/sharding/change_stream_invalidation.js index f4904d5182e..396db586c4f 100644 --- a/jstests/sharding/change_stream_invalidation.js +++ b/jstests/sharding/change_stream_invalidation.js @@ -26,7 +26,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -38,7 +38,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey] chunk to shard0001. + // Move the [0, MaxKey] chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/change_stream_read_preference.js b/jstests/sharding/change_stream_read_preference.js index 8f1008996be..d60b35a84b7 100644 --- a/jstests/sharding/change_stream_read_preference.js +++ b/jstests/sharding/change_stream_read_preference.js @@ -29,7 +29,7 @@ const mongosDB = st.s0.getDB(dbName); const mongosColl = mongosDB[jsTestName()]; - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -41,7 +41,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey] chunk to shard0001. + // Move the [0, MaxKey] chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/change_stream_remove_shard.js b/jstests/sharding/change_stream_remove_shard.js index 1cb8678e9f1..451df54ec47 100644 --- a/jstests/sharding/change_stream_remove_shard.js +++ b/jstests/sharding/change_stream_remove_shard.js @@ -33,7 +33,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); diff --git a/jstests/sharding/change_stream_update_lookup_collation.js b/jstests/sharding/change_stream_update_lookup_collation.js index 707fe59708f..0cdd59cf131 100644 --- a/jstests/sharding/change_stream_update_lookup_collation.js +++ b/jstests/sharding/change_stream_update_lookup_collation.js @@ -27,7 +27,7 @@ const mongosDB = st.s0.getDB(jsTestName()); const mongosColl = mongosDB[jsTestName()]; - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -48,7 +48,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {shardKey: "aBC"}})); - // Move the [MinKey, 'aBC') chunk to shard0001. + // Move the [MinKey, 'aBC') chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {shardKey: "ABC"}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/change_streams.js b/jstests/sharding/change_streams.js index 404b73c72ef..92547fabe62 100644 --- a/jstests/sharding/change_streams.js +++ b/jstests/sharding/change_streams.js @@ -29,7 +29,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -41,7 +41,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey) chunk to shard0001. + // Move the [0, MaxKey) chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); @@ -138,7 +138,7 @@ // Split the collection into 2 chunks: [MinKey, 0), [0, MaxKey). assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey) chunk to shard0001. + // Move the [0, MaxKey) chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/change_streams_shards_start_in_sync.js b/jstests/sharding/change_streams_shards_start_in_sync.js index 3ed7d3fe98a..efad4a2e382 100644 --- a/jstests/sharding/change_streams_shards_start_in_sync.js +++ b/jstests/sharding/change_streams_shards_start_in_sync.js @@ -33,7 +33,7 @@ const mongosDB = st.s0.getDB(jsTestName()); const mongosColl = mongosDB[jsTestName()]; - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -45,7 +45,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey) chunk to shard0001. + // Move the [0, MaxKey) chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/cleanup_orphaned_auth.js b/jstests/sharding/cleanup_orphaned_auth.js index 834ad613a38..913bea9b1b7 100644 --- a/jstests/sharding/cleanup_orphaned_auth.js +++ b/jstests/sharding/cleanup_orphaned_auth.js @@ -19,8 +19,11 @@ doassert(finalMsg); } - var st = - new ShardingTest({auth: true, other: {keyFile: 'jstests/libs/key1', useHostname: false}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest({ + auth: true, + other: {keyFile: 'jstests/libs/key1', useHostname: false, shardAsReplicaSet: false} + }); var shardAdmin = st.shard0.getDB('admin'); shardAdmin.createUser( diff --git a/jstests/sharding/coll_epoch_test0.js b/jstests/sharding/coll_epoch_test0.js index 49fe99914a0..a8745cd3110 100644 --- a/jstests/sharding/coll_epoch_test0.js +++ b/jstests/sharding/coll_epoch_test0.js @@ -9,7 +9,7 @@ var coll = st.s.getCollection("foo.bar"); // First enable sharding admin.runCommand({enableSharding: coll.getDB() + ""}); -st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); +st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); admin.runCommand({shardCollection: coll + "", key: {_id: 1}}); var primary = config.databases.find({_id: coll.getDB() + ""}).primary; diff --git a/jstests/sharding/coll_epoch_test2.js b/jstests/sharding/coll_epoch_test2.js index c2106ebefbe..d040e86930f 100644 --- a/jstests/sharding/coll_epoch_test2.js +++ b/jstests/sharding/coll_epoch_test2.js @@ -28,7 +28,7 @@ var shards = [st.shard0, st.shard1]; jsTest.log("Enabling sharding for the first time..."); admin.runCommand({enableSharding: coll.getDB() + ""}); -st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); +st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); admin.runCommand({shardCollection: coll + "", key: {_id: 1}}); assert.writeOK(coll.insert({hello: "world"})); @@ -79,7 +79,7 @@ assert(droppedCollDoc.lastmodEpoch.equals(new ObjectId("000000000000000000000000 "epoch not zero: " + droppedCollDoc.lastmodEpoch); admin.runCommand({enableSharding: coll.getDB() + ""}); -st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); +st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); admin.runCommand({shardCollection: coll + "", key: {_id: 1}}); var bulk = coll.initializeUnorderedBulkOp(); diff --git a/jstests/sharding/collation_targeting.js b/jstests/sharding/collation_targeting.js index c4dc22641c7..21740339d0f 100644 --- a/jstests/sharding/collation_targeting.js +++ b/jstests/sharding/collation_targeting.js @@ -11,7 +11,7 @@ var st = new ShardingTest({shards: 3}); var testDB = st.s.getDB("test"); assert.commandWorked(testDB.adminCommand({enableSharding: testDB.getName()})); - st.ensurePrimaryShard(testDB.getName(), "shard0001"); + st.ensurePrimaryShard(testDB.getName(), st.shard1.shardName); // Create a collection sharded on {a: 1}. Add 2dsphere index to test geoNear. var coll = testDB.getCollection("simple_collation"); @@ -21,22 +21,22 @@ assert.commandWorked(testDB.adminCommand({shardCollection: coll.getFullName(), key: {a: 1}})); // Split the collection. - // shard0000: { "a" : { "$minKey" : 1 } } -->> { "a" : 10 } - // shard0001: { "a" : 10 } -->> { "a" : "a"} + // st.shard0.shardName: { "a" : { "$minKey" : 1 } } -->> { "a" : 10 } + // st.shard1.shardName: { "a" : 10 } -->> { "a" : "a"} // shard0002: { "a" : "a" } -->> { "a" : { "$maxKey" : 1 }} assert.commandWorked(testDB.adminCommand({split: coll.getFullName(), middle: {a: 10}})); assert.commandWorked(testDB.adminCommand({split: coll.getFullName(), middle: {a: "a"}})); - assert.commandWorked( - testDB.adminCommand({moveChunk: coll.getFullName(), find: {a: 1}, to: "shard0000"})); - assert.commandWorked( - testDB.adminCommand({moveChunk: coll.getFullName(), find: {a: "FOO"}, to: "shard0001"})); - assert.commandWorked( - testDB.adminCommand({moveChunk: coll.getFullName(), find: {a: "foo"}, to: "shard0002"})); + assert.commandWorked(testDB.adminCommand( + {moveChunk: coll.getFullName(), find: {a: 1}, to: st.shard0.shardName})); + assert.commandWorked(testDB.adminCommand( + {moveChunk: coll.getFullName(), find: {a: "FOO"}, to: st.shard1.shardName})); + assert.commandWorked(testDB.adminCommand( + {moveChunk: coll.getFullName(), find: {a: "foo"}, to: st.shard2.shardName})); // Put data on each shard. // Note that the balancer is off by default, so the chunks will stay put. - // shard0000: {a: 1} - // shard0001: {a: 100}, {a: "FOO"} + // st.shard0.shardName: {a: 1} + // st.shard1.shardName: {a: 100}, {a: "FOO"} // shard0002: {a: "foo"} // Include geo field to test geoNear. var a_1 = {_id: 0, a: 1, geo: {type: "Point", coordinates: [0, 0]}}; diff --git a/jstests/sharding/collation_targeting_inherited.js b/jstests/sharding/collation_targeting_inherited.js index 2729b64552d..b9e88059dc1 100644 --- a/jstests/sharding/collation_targeting_inherited.js +++ b/jstests/sharding/collation_targeting_inherited.js @@ -11,7 +11,7 @@ var st = new ShardingTest({shards: 3}); var testDB = st.s.getDB("test"); assert.commandWorked(testDB.adminCommand({enableSharding: testDB.getName()})); - st.ensurePrimaryShard(testDB.getName(), "shard0001"); + st.ensurePrimaryShard(testDB.getName(), st.shard1.shardName); // Create a collection with a case-insensitive default collation sharded on {a: 1}. var collCaseInsensitive = testDB.getCollection("case_insensitive"); @@ -26,24 +26,24 @@ })); // Split the collection. - // shard0000: { "a" : { "$minKey" : 1 } } -->> { "a" : 10 } - // shard0001: { "a" : 10 } -->> { "a" : "a"} + // st.shard0.shardName: { "a" : { "$minKey" : 1 } } -->> { "a" : 10 } + // st.shard1.shardName: { "a" : 10 } -->> { "a" : "a"} // shard0002: { "a" : "a" } -->> { "a" : { "$maxKey" : 1 }} assert.commandWorked( testDB.adminCommand({split: collCaseInsensitive.getFullName(), middle: {a: 10}})); assert.commandWorked( testDB.adminCommand({split: collCaseInsensitive.getFullName(), middle: {a: "a"}})); assert.commandWorked(testDB.adminCommand( - {moveChunk: collCaseInsensitive.getFullName(), find: {a: 1}, to: "shard0000"})); + {moveChunk: collCaseInsensitive.getFullName(), find: {a: 1}, to: st.shard0.shardName})); assert.commandWorked(testDB.adminCommand( - {moveChunk: collCaseInsensitive.getFullName(), find: {a: "FOO"}, to: "shard0001"})); + {moveChunk: collCaseInsensitive.getFullName(), find: {a: "FOO"}, to: st.shard1.shardName})); assert.commandWorked(testDB.adminCommand( - {moveChunk: collCaseInsensitive.getFullName(), find: {a: "foo"}, to: "shard0002"})); + {moveChunk: collCaseInsensitive.getFullName(), find: {a: "foo"}, to: st.shard2.shardName})); // Put data on each shard. // Note that the balancer is off by default, so the chunks will stay put. - // shard0000: {a: 1} - // shard0001: {a: 100}, {a: "FOO"} + // st.shard0.shardName: {a: 1} + // st.shard1.shardName: {a: 100}, {a: "FOO"} // shard0002: {a: "foo"} // Include geo field to test geoNear. var a_1 = {_id: 0, a: 1, geo: {type: "Point", coordinates: [0, 0]}}; diff --git a/jstests/sharding/count1.js b/jstests/sharding/count1.js index e8783dac6a1..d3b2cf63b3e 100644 --- a/jstests/sharding/count1.js +++ b/jstests/sharding/count1.js @@ -30,7 +30,7 @@ // part 1 s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {name: 1}}); var primary = s.getPrimaryShard("test").getDB("test"); diff --git a/jstests/sharding/count2.js b/jstests/sharding/count2.js index 22d4a80a175..d5bad76a246 100644 --- a/jstests/sharding/count2.js +++ b/jstests/sharding/count2.js @@ -4,7 +4,7 @@ var s2 = s1._mongos[1]; s1.adminCommand({enablesharding: "test"}); - s1.ensurePrimaryShard('test', 'shard0001'); + s1.ensurePrimaryShard('test', s1.shard1.shardName); s1.adminCommand({shardcollection: "test.foo", key: {name: 1}}); var db1 = s1.getDB("test").foo; diff --git a/jstests/sharding/create_idx_empty_primary.js b/jstests/sharding/create_idx_empty_primary.js index f8beffa7e52..1610c1fef44 100644 --- a/jstests/sharding/create_idx_empty_primary.js +++ b/jstests/sharding/create_idx_empty_primary.js @@ -6,14 +6,14 @@ var st = new ShardingTest({shards: 2}); assert.commandWorked(st.s.adminCommand({enablesharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); var testDB = st.s.getDB('test'); assert.commandWorked(testDB.adminCommand({shardcollection: 'test.user', key: {_id: 1}})); // Move only chunk out of primary shard. assert.commandWorked( - testDB.adminCommand({movechunk: 'test.user', find: {_id: 0}, to: 'shard0000'})); + testDB.adminCommand({movechunk: 'test.user', find: {_id: 0}, to: st.shard0.shardName})); assert.writeOK(testDB.user.insert({_id: 0})); @@ -23,10 +23,10 @@ var indexes = testDB.user.getIndexes(); assert.eq(2, indexes.length); - indexes = st.d0.getDB('test').user.getIndexes(); + indexes = st.rs0.getPrimary().getDB('test').user.getIndexes(); assert.eq(2, indexes.length); - indexes = st.d1.getDB('test').user.getIndexes(); + indexes = st.rs1.getPrimary().getDB('test').user.getIndexes(); assert.eq(2, indexes.length); st.stop(); diff --git a/jstests/sharding/cursor1.js b/jstests/sharding/cursor1.js index cf5bfb27c1e..92e321eac27 100644 --- a/jstests/sharding/cursor1.js +++ b/jstests/sharding/cursor1.js @@ -8,7 +8,7 @@ // create a sharded 'test.foo', for the moment with just one chunk s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {_id: 1}}); db = s.getDB("test"); diff --git a/jstests/sharding/cursor_timeout.js b/jstests/sharding/cursor_timeout.js index 690bda9aa4a..340868e06f4 100644 --- a/jstests/sharding/cursor_timeout.js +++ b/jstests/sharding/cursor_timeout.js @@ -26,6 +26,7 @@ const cursorMonitorFrequencySecs = 1; + // TODO: SERVER-33444 remove shardAsReplicaSet: false const st = new ShardingTest({ shards: 2, other: { @@ -42,7 +43,8 @@ cursorTimeoutMillis: mongosCursorTimeoutMs, clientCursorMonitorFrequencySecs: cursorMonitorFrequencySecs } - } + }, + shardAsReplicaSet: false }, enableBalancer: false }); @@ -55,7 +57,7 @@ const shardColl = mongod.getCollection(routerColl.getFullName()); assert.commandWorked(adminDB.runCommand({enableSharding: routerColl.getDB().getName()})); - st.ensurePrimaryShard(routerColl.getDB().getName(), 'shard0000'); + st.ensurePrimaryShard(routerColl.getDB().getName(), "shard0000"); assert.commandWorked( adminDB.runCommand({shardCollection: routerColl.getFullName(), key: {x: 1}})); assert.commandWorked(adminDB.runCommand({split: routerColl.getFullName(), middle: {x: 10}})); diff --git a/jstests/sharding/delete_during_migrate.js b/jstests/sharding/delete_during_migrate.js index 2e7f6220d75..04c3075b1f1 100644 --- a/jstests/sharding/delete_during_migrate.js +++ b/jstests/sharding/delete_during_migrate.js @@ -17,7 +17,7 @@ var ns = dbname + "." + coll; assert.commandWorked(st.s0.adminCommand({enablesharding: dbname})); - st.ensurePrimaryShard(dbname, 'shard0001'); + st.ensurePrimaryShard(dbname, st.shard1.shardName); var t = st.s0.getDB(dbname).getCollection(coll); diff --git a/jstests/sharding/enable_sharding_basic.js b/jstests/sharding/enable_sharding_basic.js index 7fd7426dfd2..fb0cbdbdb4a 100644 --- a/jstests/sharding/enable_sharding_basic.js +++ b/jstests/sharding/enable_sharding_basic.js @@ -8,8 +8,9 @@ var st = new ShardingTest({mongos: 2, shards: 2}); // enableSharding can run only on mongos. - assert.commandFailedWithCode(st.d0.getDB('admin').runCommand({enableSharding: 'db'}), - ErrorCodes.CommandNotFound); + assert.commandFailedWithCode( + st.rs0.getPrimary().getDB('admin').runCommand({enableSharding: 'db'}), + ErrorCodes.CommandNotFound); // enableSharding can run only against the admin database. assert.commandFailedWithCode(st.s0.getDB('test').runCommand({enableSharding: 'db'}), diff --git a/jstests/sharding/enforce_zone_policy.js b/jstests/sharding/enforce_zone_policy.js index bf3ce3d1a5a..7aac1aa02bf 100644 --- a/jstests/sharding/enforce_zone_policy.js +++ b/jstests/sharding/enforce_zone_policy.js @@ -6,7 +6,7 @@ var st = new ShardingTest({shards: 3, mongos: 1}); assert.commandWorked(st.s0.adminCommand({enablesharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); var testDB = st.s0.getDB('test'); var configDB = st.s0.getDB('config'); @@ -56,17 +56,18 @@ assertBalanceCompleteAndStable(checkClusterEvenlyBalanced, 'initial'); // Spread chunks correctly across zones - st.addShardTag('shard0000', 'a'); - st.addShardTag('shard0001', 'a'); + st.addShardTag(st.shard0.shardName, 'a'); + st.addShardTag(st.shard1.shardName, 'a'); st.addTagRange('test.foo', {_id: -100}, {_id: 100}, 'a'); - st.addShardTag('shard0002', 'b'); + st.addShardTag(st.shard2.shardName, 'b'); st.addTagRange('test.foo', {_id: MinKey}, {_id: -100}, 'b'); st.addTagRange('test.foo', {_id: 100}, {_id: MaxKey}, 'b'); assertBalanceCompleteAndStable(function() { - var chunksOnShard2 = - configDB.chunks.find({ns: 'test.foo', shard: 'shard0002'}).sort({min: 1}).toArray(); + var chunksOnShard2 = configDB.chunks.find({ns: 'test.foo', shard: st.shard2.shardName}) + .sort({min: 1}) + .toArray(); jsTestLog('Chunks on shard2: ' + tojson(chunksOnShard2)); @@ -83,18 +84,19 @@ st.removeTagRange('test.foo', {_id: MinKey}, {_id: -100}, 'b'); st.removeTagRange('test.foo', {_id: 100}, {_id: MaxKey}, 'b'); - st.removeShardTag('shard0001', 'a'); - st.removeShardTag('shard0002', 'b'); + st.removeShardTag(st.shard1.shardName, 'a'); + st.removeShardTag(st.shard2.shardName, 'b'); st.addTagRange('test.foo', {_id: MinKey}, {_id: MaxKey}, 'a'); assertBalanceCompleteAndStable(function() { var counts = st.chunkCounts('foo'); printjson(counts); - return counts['shard0000'] == 11 && counts['shard0001'] == 0 && counts['shard0002'] == 0; + return counts[st.shard0.shardName] == 11 && counts[st.shard1.shardName] == 0 && + counts[st.shard2.shardName] == 0; }, 'all chunks to zone a'); // Remove all zones and ensure collection is correctly redistributed - st.removeShardTag('shard0000', 'a'); + st.removeShardTag(st.shard0.shardName, 'a'); st.removeTagRange('test.foo', {_id: MinKey}, {_id: MaxKey}, 'a'); assertBalanceCompleteAndStable(checkClusterEvenlyBalanced, 'final'); diff --git a/jstests/sharding/error_during_agg_getmore.js b/jstests/sharding/error_during_agg_getmore.js index adcc6a6172b..d6f3f8a2f90 100644 --- a/jstests/sharding/error_during_agg_getmore.js +++ b/jstests/sharding/error_during_agg_getmore.js @@ -10,7 +10,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.shard0.shardName); @@ -22,7 +22,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey] chunk to shard0001. + // Move the [0, MaxKey] chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.shard1.shardName})); @@ -34,7 +34,7 @@ // likely arrive after the response from shard 0, but not so long that the background cluster // client cleanup job will have been given a chance to run. const delayMillis = 100; - st.shard1.delayMessagesFrom(st.s, delayMillis); + st.rs1.getPrimary().delayMessagesFrom(st.s, delayMillis); const nTrials = 10; for (let i = 1; i < 10; ++i) { diff --git a/jstests/sharding/explain_cmd.js b/jstests/sharding/explain_cmd.js index 3293c167db1..0b5dcf8bf30 100644 --- a/jstests/sharding/explain_cmd.js +++ b/jstests/sharding/explain_cmd.js @@ -17,18 +17,18 @@ // Enable sharding. assert.commandWorked(db.adminCommand({enableSharding: db.getName()})); - st.ensurePrimaryShard(db.getName(), 'shard0001'); + st.ensurePrimaryShard(db.getName(), st.shard1.shardName); db.adminCommand({shardCollection: collSharded.getFullName(), key: {a: 1}}); // Pre-split the collection to ensure that both shards have chunks. Explicitly // move chunks since the balancer is disabled. - for (var i = 1; i <= 2; i++) { - assert.commandWorked(db.adminCommand({split: collSharded.getFullName(), middle: {a: i}})); + assert.commandWorked(db.adminCommand({split: collSharded.getFullName(), middle: {a: 1}})); + printjson(db.adminCommand( + {moveChunk: collSharded.getFullName(), find: {a: 1}, to: st.shard0.shardName})); - var shardName = "shard000" + (i - 1); - printjson( - db.adminCommand({moveChunk: collSharded.getFullName(), find: {a: i}, to: shardName})); - } + assert.commandWorked(db.adminCommand({split: collSharded.getFullName(), middle: {a: 2}})); + printjson(db.adminCommand( + {moveChunk: collSharded.getFullName(), find: {a: 2}, to: st.shard1.shardName})); // Put data on each shard. for (var i = 0; i < 3; i++) { diff --git a/jstests/sharding/explain_find_and_modify_sharded.js b/jstests/sharding/explain_find_and_modify_sharded.js index d2370ee61ce..3066666c82d 100644 --- a/jstests/sharding/explain_find_and_modify_sharded.js +++ b/jstests/sharding/explain_find_and_modify_sharded.js @@ -20,18 +20,20 @@ assert.commandWorked(shardedColl.ensureIndex(shardKey)); // Enable sharding on the database and shard the collection. - // Use "shard0000" as the primary shard. + // Use "st.shard0.shardName" as the primary shard. assert.commandWorked(testDB.adminCommand({enableSharding: testDB.getName()})); - st.ensurePrimaryShard(testDB.toString(), 'shard0000'); + st.ensurePrimaryShard(testDB.toString(), st.shard0.shardName); assert.commandWorked( testDB.adminCommand({shardCollection: shardedColl.getFullName(), key: shardKey})); // Split and move the chunks so that - // chunk { "a" : { "$minKey" : 1 } } -->> { "a" : 10 } is on shard0000 - // chunk { "a" : 10 } -->> { "a" : { "$maxKey" : 1 } } is on shard0001 + // chunk { "a" : { "$minKey" : 1 } } -->> { "a" : 10 } is on + // st.shard0.shardName + // chunk { "a" : 10 } -->> { "a" : { "$maxKey" : 1 } } is on + // st.shard1.shardName assert.commandWorked(testDB.adminCommand({split: shardedColl.getFullName(), middle: {a: 10}})); assert.commandWorked(testDB.adminCommand( - {moveChunk: shardedColl.getFullName(), find: {a: 10}, to: 'shard0001'})); + {moveChunk: shardedColl.getFullName(), find: {a: 10}, to: st.shard1.shardName})); var res; @@ -66,21 +68,23 @@ assert.eq(expectedStage, shardStage.shards[0][innerKey].stage); } - // Test that the explain command is routed to "shard0000" when targeting the lower chunk range. + // Test that the explain command is routed to "st.shard0.shardName" when targeting the lower + // chunk range. res = testDB.runCommand({ explain: {findAndModify: collName, query: {a: 0}, update: {$inc: {b: 7}}, upsert: true}, verbosity: 'queryPlanner' }); assert.commandWorked(res); - assertExplainResult(res, 'queryPlanner', 'winningPlan', 'shard0000', 'UPDATE'); + assertExplainResult(res, 'queryPlanner', 'winningPlan', st.shard0.shardName, 'UPDATE'); - // Test that the explain command is routed to "shard0001" when targeting the higher chunk range. + // Test that the explain command is routed to "st.shard1.shardName" when targeting the higher + // chunk range. res = testDB.runCommand({ explain: {findAndModify: collName, query: {a: 20, c: 5}, remove: true}, verbosity: 'executionStats' }); assert.commandWorked(res); - assertExplainResult(res, 'executionStats', 'executionStages', 'shard0001', 'DELETE'); + assertExplainResult(res, 'executionStats', 'executionStages', st.shard1.shardName, 'DELETE'); st.stop(); })(); diff --git a/jstests/sharding/features1.js b/jstests/sharding/features1.js index 254e919f237..0a31b5c94c9 100644 --- a/jstests/sharding/features1.js +++ b/jstests/sharding/features1.js @@ -3,7 +3,7 @@ var s = new ShardingTest({name: "features1", shards: 2, mongos: 1}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); // ---- can't shard system namespaces ---- diff --git a/jstests/sharding/features2.js b/jstests/sharding/features2.js index e84290d046e..16d28c4d1ba 100644 --- a/jstests/sharding/features2.js +++ b/jstests/sharding/features2.js @@ -5,7 +5,7 @@ var s = new ShardingTest({name: "features2", shards: 2, mongos: 1}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); let a = s._connections[0].getDB("test"); let b = s._connections[1].getDB("test"); diff --git a/jstests/sharding/features3.js b/jstests/sharding/features3.js index a6bd2e2b2d1..cee22543b7e 100644 --- a/jstests/sharding/features3.js +++ b/jstests/sharding/features3.js @@ -17,7 +17,7 @@ // shard test.foo and add a split point s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {_id: 1}}); s.adminCommand({split: "test.foo", middle: {_id: numDocs / 2}}); @@ -45,8 +45,8 @@ assert.eq("test.foo", x.ns, "namespace mismatch"); assert(x.sharded, "collection is not sharded"); assert.eq(numDocs, x.count, "total count"); - assert.eq(numDocs / 2, x.shards.shard0000.count, "count on shard0000"); - assert.eq(numDocs / 2, x.shards.shard0001.count, "count on shard0001"); + assert.eq(numDocs / 2, x.shards[s.shard0.shardName].count, "count on " + s.shard0.shardName); + assert.eq(numDocs / 2, x.shards[s.shard1.shardName].count, "count on " + s.shard1.shardName); assert(x.totalIndexSize > 0); // insert one doc into a non-sharded collection @@ -145,7 +145,7 @@ // test fsync on admin db x = dbForTest._adminCommand("fsync"); assert(x.ok == 1, "fsync failed: " + tojson(x)); - if (x.all.shard0000 > 0) { + if (x.all[s.shard0.shardName] > 0) { assert(x.numFiles > 0, "fsync failed: " + tojson(x)); } diff --git a/jstests/sharding/find_and_modify_after_multi_write.js b/jstests/sharding/find_and_modify_after_multi_write.js index 15f54120706..749f999c54c 100644 --- a/jstests/sharding/find_and_modify_after_multi_write.js +++ b/jstests/sharding/find_and_modify_after_multi_write.js @@ -11,42 +11,42 @@ var testDB = st.s.getDB('test'); assert.commandWorked(testDB.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); assert.commandWorked(testDB.adminCommand({shardCollection: 'test.user', key: {x: 1}})); assert.commandWorked(testDB.adminCommand({split: 'test.user', middle: {x: 0}})); assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard1.shardName, _waitForDelete: true})); var testDB2 = st.s1.getDB('test'); testDB2.user.insert({x: 123456}); // Move chunk to bump version on a different mongos. assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0000', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName, _waitForDelete: true})); // Issue a targetted findAndModify and check that it was upserted to the right shard. assert.commandWorked(testDB2.runCommand( {findAndModify: 'user', query: {x: 100}, update: {$set: {y: 1}}, upsert: true})); - assert.neq(null, st.d0.getDB('test').user.findOne({x: 100})); - assert.eq(null, st.d1.getDB('test').user.findOne({x: 100})); + assert.neq(null, st.rs0.getPrimary().getDB('test').user.findOne({x: 100})); + assert.eq(null, st.rs1.getPrimary().getDB('test').user.findOne({x: 100})); // At this point, s1 thinks the version of 'test.user' is 2, bounce it again so it gets // incremented to 3 assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard1.shardName, _waitForDelete: true})); assert.commandWorked(testDB2.runCommand( {findAndModify: 'user', query: {x: 200}, update: {$set: {y: 1}}, upsert: true})); - assert.eq(null, st.d0.getDB('test').user.findOne({x: 200})); - assert.neq(null, st.d1.getDB('test').user.findOne({x: 200})); + assert.eq(null, st.rs0.getPrimary().getDB('test').user.findOne({x: 200})); + assert.neq(null, st.rs1.getPrimary().getDB('test').user.findOne({x: 200})); // At this point, s0 thinks the version of 'test.user' is 3, bounce it again so it gets // incremented to 4 assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0000', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName, _waitForDelete: true})); // Ensure that write commands with multi version do not reset the connection shard version // to @@ -56,8 +56,8 @@ assert.commandWorked(testDB2.runCommand( {findAndModify: 'user', query: {x: 300}, update: {$set: {y: 1}}, upsert: true})); - assert.neq(null, st.d0.getDB('test').user.findOne({x: 300})); - assert.eq(null, st.d1.getDB('test').user.findOne({x: 300})); + assert.neq(null, st.rs0.getPrimary().getDB('test').user.findOne({x: 300})); + assert.eq(null, st.rs1.getPrimary().getDB('test').user.findOne({x: 300})); st.stop(); }; diff --git a/jstests/sharding/find_getmore_cmd.js b/jstests/sharding/find_getmore_cmd.js index a7e4e712ff6..e688fc0f9ca 100644 --- a/jstests/sharding/find_getmore_cmd.js +++ b/jstests/sharding/find_getmore_cmd.js @@ -25,11 +25,11 @@ assert.commandWorked(coll.ensureIndex({b: "text"})); assert.commandWorked(db.adminCommand({enableSharding: db.getName()})); - st.ensurePrimaryShard(db.getName(), "shard0000"); + st.ensurePrimaryShard(db.getName(), st.shard0.shardName); db.adminCommand({shardCollection: coll.getFullName(), key: {_id: 1}}); assert.commandWorked(db.adminCommand({split: coll.getFullName(), middle: {_id: 0}})); assert.commandWorked( - db.adminCommand({moveChunk: coll.getFullName(), find: {_id: 1}, to: "shard0001"})); + db.adminCommand({moveChunk: coll.getFullName(), find: {_id: 1}, to: st.shard1.shardName})); // Find with no options. cmdRes = db.runCommand({find: coll.getName()}); diff --git a/jstests/sharding/findandmodify2.js b/jstests/sharding/findandmodify2.js index ab706a448c4..372d96c2795 100644 --- a/jstests/sharding/findandmodify2.js +++ b/jstests/sharding/findandmodify2.js @@ -5,7 +5,7 @@ assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); var db = s.getDB("test"); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); var primary = s.getPrimaryShard("test").getDB("test"); var secondary = s.getOther(primary).getDB("test"); diff --git a/jstests/sharding/forget_mr_temp_ns.js b/jstests/sharding/forget_mr_temp_ns.js index fd950bcf43c..d3403dd7fee 100644 --- a/jstests/sharding/forget_mr_temp_ns.js +++ b/jstests/sharding/forget_mr_temp_ns.js @@ -2,7 +2,8 @@ // Tests whether we forget M/R's temporary namespaces for sharded output // -var st = new ShardingTest({shards: 1, mongos: 1}); +// TODO: SERVER-33444 remove shardAsReplicaSet: false +var st = new ShardingTest({shards: 1, mongos: 1, other: {shardAsReplicaSet: false}}); var mongos = st.s0; var admin = mongos.getDB("admin"); diff --git a/jstests/sharding/fts_score_sort_sharded.js b/jstests/sharding/fts_score_sort_sharded.js index cf2c5769e5c..2145e987558 100644 --- a/jstests/sharding/fts_score_sort_sharded.js +++ b/jstests/sharding/fts_score_sort_sharded.js @@ -13,11 +13,11 @@ var cursor; // Pre-split collection: shard 0 takes {_id: {$lt: 0}}, shard 1 takes {_id: {$gte: 0}}. // assert.commandWorked(admin.runCommand({enableSharding: coll.getDB().getName()})); -st.ensurePrimaryShard(coll.getDB().toString(), "shard0000"); +st.ensurePrimaryShard(coll.getDB().toString(), st.shard0.shardName); assert.commandWorked(admin.runCommand({shardCollection: coll.getFullName(), key: {_id: 1}})); assert.commandWorked(admin.runCommand({split: coll.getFullName(), middle: {_id: 0}})); assert.commandWorked( - admin.runCommand({moveChunk: coll.getFullName(), find: {_id: 0}, to: "shard0001"})); + admin.runCommand({moveChunk: coll.getFullName(), find: {_id: 0}, to: st.shard1.shardName})); // // Insert documents into collection and create text index. diff --git a/jstests/sharding/geo_near_random1.js b/jstests/sharding/geo_near_random1.js index 1f8633d0a06..260c37fea0d 100644 --- a/jstests/sharding/geo_near_random1.js +++ b/jstests/sharding/geo_near_random1.js @@ -15,18 +15,18 @@ load("jstests/libs/geo_near_random.js"); var test = new GeoNearRandomTest(testName, db); assert.commandWorked(s.s0.adminCommand({enablesharding: 'test'})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: ('test.' + testName), key: {_id: 1}})); test.insertPts(50); - + var shardList = [s.shard0.shardName, s.shard1.shardName, s.shard2.shardName]; for (var i = (test.nPts / 10); i < test.nPts; i += (test.nPts / 10)) { assert.commandWorked(s.s0.adminCommand({split: ('test.' + testName), middle: {_id: i}})); try { assert.commandWorked(s.s0.adminCommand({ moveChunk: ('test.' + testName), find: {_id: i - 1}, - to: ('shard000' + (i % 3)), + to: (shardList[i % 3]), _waitForDelete: true })); } catch (e) { diff --git a/jstests/sharding/geo_near_random2.js b/jstests/sharding/geo_near_random2.js index 320842acb17..0b874e5aafe 100644 --- a/jstests/sharding/geo_near_random2.js +++ b/jstests/sharding/geo_near_random2.js @@ -15,18 +15,18 @@ load("jstests/libs/geo_near_random.js"); var test = new GeoNearRandomTest(testName, db); assert.commandWorked(s.s0.adminCommand({enablesharding: 'test'})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: ('test.' + testName), key: {_id: 1}})); test.insertPts(5000); - + var shardList = [s.shard0.shardName, s.shard1.shardName, s.shard2.shardName]; for (var i = (test.nPts / 10); i < test.nPts; i += (test.nPts / 10)) { assert.commandWorked(s.s0.adminCommand({split: ('test.' + testName), middle: {_id: i}})); try { assert.commandWorked(s.s0.adminCommand({ moveChunk: ('test.' + testName), find: {_id: i - 1}, - to: ('shard000' + (i % 3)), + to: shardList[i % 3], _waitForDelete: true })); } catch (e) { diff --git a/jstests/sharding/geo_near_sharded.js b/jstests/sharding/geo_near_sharded.js index 352f9c90b84..a92b579ef7e 100644 --- a/jstests/sharding/geo_near_sharded.js +++ b/jstests/sharding/geo_near_sharded.js @@ -46,9 +46,10 @@ tojson({sharded: sharded, indexType: indexType})); } - var st = new ShardingTest({shards: 3, mongos: 1}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest({shards: 3, mongos: 1, other: {shardAsReplicaSet: false}}); assert.commandWorked(st.s0.adminCommand({enablesharding: "test"})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); test(st, st.getDB('test'), true, '2dsphere'); st.stop(); diff --git a/jstests/sharding/geo_near_sort.js b/jstests/sharding/geo_near_sort.js index 202b6044e4c..fa839a78551 100644 --- a/jstests/sharding/geo_near_sort.js +++ b/jstests/sharding/geo_near_sort.js @@ -8,13 +8,13 @@ const caseInsensitive = {locale: "en_US", strength: 2}; assert.commandWorked(st.s0.adminCommand({enableSharding: db.getName()})); - st.ensurePrimaryShard(db.getName(), "shard0000"); + st.ensurePrimaryShard(db.getName(), st.shard0.shardName); assert.commandWorked(st.s0.adminCommand({shardCollection: coll.getFullName(), key: {_id: 1}})); // Split the data into 2 chunks and move the chunk with _id > 0 to shard 1. assert.commandWorked(st.s0.adminCommand({split: coll.getFullName(), middle: {_id: 0}})); - assert.commandWorked( - st.s0.adminCommand({movechunk: coll.getFullName(), find: {_id: 1}, to: "shard0001"})); + assert.commandWorked(st.s0.adminCommand( + {movechunk: coll.getFullName(), find: {_id: 1}, to: st.shard1.shardName})); // Insert some documents. The sort order by distance from the origin is [-2, 1, -1, 2] (under 2d // or 2dsphere geometry). The sort order by {a: 1} under the case-insensitive collation is [2, diff --git a/jstests/sharding/hash_basic.js b/jstests/sharding/hash_basic.js index fa4947474a8..bffada99eef 100644 --- a/jstests/sharding/hash_basic.js +++ b/jstests/sharding/hash_basic.js @@ -4,7 +4,7 @@ var st = new ShardingTest({shards: 2, chunkSize: 1}); assert.commandWorked(st.s0.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(st.s0.adminCommand({shardCollection: 'test.user', key: {x: 'hashed'}})); var configDB = st.s0.getDB('config'); diff --git a/jstests/sharding/hash_shard1.js b/jstests/sharding/hash_shard1.js index 21b69472e3c..4939cc53c99 100644 --- a/jstests/sharding/hash_shard1.js +++ b/jstests/sharding/hash_shard1.js @@ -8,7 +8,7 @@ var ns = dbname + "." + coll; var db = s.getDB(dbname); var t = db.getCollection(coll); db.adminCommand({enablesharding: dbname}); -s.ensurePrimaryShard(dbname, 'shard0001'); +s.ensurePrimaryShard(dbname, s.shard1.shardName); // for simplicity start by turning off balancer s.stopBalancer(); @@ -29,18 +29,18 @@ for (i = 0; i < numitems; i++) { assert.eq(t.find().count(), numitems, "count off after inserts"); printjson(t.find().explain()); -// find a chunk that's not on shard0000 -var chunk = s.config.chunks.findOne({shard: {$ne: "shard0000"}}); -assert.neq(chunk, null, "all chunks on shard0000!"); +// find a chunk that's not on s.shard0.shardName +var chunk = s.config.chunks.findOne({shard: {$ne: s.shard0.shardName}}); +assert.neq(chunk, null, "all chunks on s.shard0.shardName!"); printjson(chunk); // try to move the chunk using an invalid specification method. should fail. -var res = - db.adminCommand({movechunk: ns, find: {a: 0}, bounds: [chunk.min, chunk.max], to: "shard0000"}); +var res = db.adminCommand( + {movechunk: ns, find: {a: 0}, bounds: [chunk.min, chunk.max], to: s.shard0.shardName}); assert.eq(res.ok, 0, "moveChunk shouldn't work with invalid specification method"); // now move a chunk using the lower/upper bound method. should work. -var res = db.adminCommand({movechunk: ns, bounds: [chunk.min, chunk.max], to: "shard0000"}); +var res = db.adminCommand({movechunk: ns, bounds: [chunk.min, chunk.max], to: s.shard0.shardName}); printjson(res); assert.eq(res.ok, 1, "movechunk using lower/upper bound method didn't work "); @@ -49,7 +49,7 @@ assert.eq(t.find().itcount(), numitems, "count off after migrate"); printjson(t.find().explain()); // move a chunk using the find method -var res = db.adminCommand({movechunk: ns, find: {a: 2}, to: "shard0002"}); +var res = db.adminCommand({movechunk: ns, find: {a: 2}, to: s.shard2.shardName}); printjson(res); assert.eq(res.ok, 1, "movechunk using find query didn't work"); diff --git a/jstests/sharding/hash_shard_non_empty.js b/jstests/sharding/hash_shard_non_empty.js index 8ebf53cf7f2..865c103ce14 100644 --- a/jstests/sharding/hash_shard_non_empty.js +++ b/jstests/sharding/hash_shard_non_empty.js @@ -5,7 +5,7 @@ var dbname = "test"; var coll = "foo"; var db = s.getDB(dbname); db.adminCommand({enablesharding: dbname}); -s.ensurePrimaryShard('test', 'shard0001'); +s.ensurePrimaryShard('test', s.shard1.shardName); // for simplicity turn off balancer s.stopBalancer(); diff --git a/jstests/sharding/hash_shard_num_chunks.js b/jstests/sharding/hash_shard_num_chunks.js index 19bf3066de2..b551ad53df2 100644 --- a/jstests/sharding/hash_shard_num_chunks.js +++ b/jstests/sharding/hash_shard_num_chunks.js @@ -9,7 +9,7 @@ var db = s.getDB(dbname); assert.commandWorked(db.adminCommand({enablesharding: dbname})); - s.ensurePrimaryShard(dbname, 'shard0001'); + s.ensurePrimaryShard(dbname, s.shard1.shardName); assert.commandWorked(db.adminCommand( {shardcollection: dbname + "." + coll, key: {a: "hashed"}, numInitialChunks: 500})); diff --git a/jstests/sharding/hash_skey_split.js b/jstests/sharding/hash_skey_split.js index fe8cef3e0d3..d6d1fcf5c84 100644 --- a/jstests/sharding/hash_skey_split.js +++ b/jstests/sharding/hash_skey_split.js @@ -5,17 +5,18 @@ var configDB = st.s.getDB('config'); assert.commandWorked(configDB.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(configDB.adminCommand( {shardCollection: 'test.user', key: {x: 'hashed'}, numInitialChunks: 2})); - var metadata = - st.d0.getDB('admin').runCommand({getShardVersion: 'test.user', fullMetadata: true}); + var metadata = st.rs0.getPrimary().getDB('admin').runCommand( + {getShardVersion: 'test.user', fullMetadata: true}); var chunks = metadata.metadata.chunks.length > 0 ? metadata.metadata.chunks : metadata.metadata.pending; assert(bsonWoCompare(chunks[0][0], chunks[0][1]) < 0, tojson(metadata)); - metadata = st.d1.getDB('admin').runCommand({getShardVersion: 'test.user', fullMetadata: true}); + metadata = st.rs1.getPrimary().getDB('admin').runCommand( + {getShardVersion: 'test.user', fullMetadata: true}); chunks = metadata.metadata.chunks.length > 0 ? metadata.metadata.chunks : metadata.metadata.pending; assert(bsonWoCompare(chunks[0][0], chunks[0][1]) < 0, tojson(metadata)); diff --git a/jstests/sharding/idhack_sharded.js b/jstests/sharding/idhack_sharded.js index 4767e579c75..6b9716ea608 100644 --- a/jstests/sharding/idhack_sharded.js +++ b/jstests/sharding/idhack_sharded.js @@ -7,11 +7,11 @@ var coll = st.s0.getCollection("test.foo"); // Pre-split collection: shard 0 takes {x: {$lt: 0}}, shard 1 takes {x: {$gte: 0}}. // assert.commandWorked(coll.getDB().adminCommand({enableSharding: coll.getDB().getName()})); -st.ensurePrimaryShard(coll.getDB().toString(), "shard0000"); +st.ensurePrimaryShard(coll.getDB().toString(), st.shard0.shardName); assert.commandWorked(coll.getDB().adminCommand({shardCollection: coll.getFullName(), key: {x: 1}})); assert.commandWorked(coll.getDB().adminCommand({split: coll.getFullName(), middle: {x: 0}})); assert.commandWorked(coll.getDB().adminCommand( - {moveChunk: coll.getFullName(), find: {x: 0}, to: "shard0001", _waitForDelete: true})); + {moveChunk: coll.getFullName(), find: {x: 0}, to: st.shard1.shardName, _waitForDelete: true})); // // Test that idhack queries with projections that remove the shard key return correct results. diff --git a/jstests/sharding/in_memory_sort_limit.js b/jstests/sharding/in_memory_sort_limit.js index cd907921489..328ae508f5a 100644 --- a/jstests/sharding/in_memory_sort_limit.js +++ b/jstests/sharding/in_memory_sort_limit.js @@ -6,7 +6,7 @@ var st = new ShardingTest({shards: 2}); assert.commandWorked(st.s.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); // Make sure that at least 1 chunk is on another shard so that mongos doesn't treat this as a // single-shard query (which doesn't exercise the bug) diff --git a/jstests/sharding/index1.js b/jstests/sharding/index1.js index 9b57c3e43f8..482137a9d03 100644 --- a/jstests/sharding/index1.js +++ b/jstests/sharding/index1.js @@ -16,7 +16,7 @@ if (i == 0) { s.adminCommand({enablesharding: "" + coll._db}); - s.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); + s.ensurePrimaryShard(coll.getDB().getName(), s.shard1.shardName); } print("\n\n\n\n\nTest # " + i); diff --git a/jstests/sharding/json_schema.js b/jstests/sharding/json_schema.js index 25c4bdc0882..1c24f427eed 100644 --- a/jstests/sharding/json_schema.js +++ b/jstests/sharding/json_schema.js @@ -23,11 +23,11 @@ assert.commandWorked(testDB.adminCommand({split: coll.getFullName(), middle: {_id: 0}})); assert.commandWorked(testDB.adminCommand({split: coll.getFullName(), middle: {_id: 100}})); - // Move the [0, 100) and [100, MaxKey) chunks to shard0001. - assert.commandWorked( - testDB.adminCommand({moveChunk: coll.getFullName(), find: {_id: 50}, to: "shard0001"})); - assert.commandWorked( - testDB.adminCommand({moveChunk: coll.getFullName(), find: {_id: 150}, to: "shard0001"})); + // Move the [0, 100) and [100, MaxKey) chunks to st.shard1.shardName. + assert.commandWorked(testDB.adminCommand( + {moveChunk: coll.getFullName(), find: {_id: 50}, to: st.shard1.shardName})); + assert.commandWorked(testDB.adminCommand( + {moveChunk: coll.getFullName(), find: {_id: 150}, to: st.shard1.shardName})); // Write one document into each of the chunks. assert.writeOK(coll.insert({_id: -150, a: 1})); diff --git a/jstests/sharding/jumbo1.js b/jstests/sharding/jumbo1.js index 4aed86feeae..8bcaf621a51 100644 --- a/jstests/sharding/jumbo1.js +++ b/jstests/sharding/jumbo1.js @@ -4,7 +4,7 @@ var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableAutoSplit: true}}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: "test.foo", key: {x: 1}})); var db = s.getDB("test"); @@ -36,7 +36,8 @@ function diff1() { var x = s.chunkCounts("foo"); printjson(x); - return Math.max(x.shard0000, x.shard0001) - Math.min(x.shard0000, x.shard0001); + return Math.max(x[s.shard0.shardName], x[s.shard1.shardName]) - + Math.min(x[s.shard0.shardName], x[s.shard1.shardName]); } assert.soon(function() { @@ -49,7 +50,8 @@ // Check that the jumbo chunk did not move, which shouldn't be possible. var jumboChunk = s.getDB('config').chunks.findOne({ns: 'test.foo', min: {$lte: {x: 0}}, max: {$gt: {x: 0}}}); - assert.eq('shard0001', jumboChunk.shard, 'jumbo chunk ' + tojson(jumboChunk) + ' was moved'); + assert.eq( + s.shard1.shardName, jumboChunk.shard, 'jumbo chunk ' + tojson(jumboChunk) + ' was moved'); // TODO: SERVER-26531 Make sure that balancer marked the first chunk as jumbo. // Assumption: balancer favors moving the lowest valued chunk out of a shard. // assert(jumboChunk.jumbo, tojson(jumboChunk)); diff --git a/jstests/sharding/key_many.js b/jstests/sharding/key_many.js index 285647bf3cd..c671e691f94 100644 --- a/jstests/sharding/key_many.js +++ b/jstests/sharding/key_many.js @@ -72,7 +72,7 @@ var s = new ShardingTest({name: "key_many", shards: 2}); assert.commandWorked(s.s0.adminCommand({enableSharding: 'test'})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); var db = s.getDB('test'); var primary = s.getPrimaryShard("test").getDB("test"); diff --git a/jstests/sharding/key_string.js b/jstests/sharding/key_string.js index a71120e06c3..c3fc654bf11 100644 --- a/jstests/sharding/key_string.js +++ b/jstests/sharding/key_string.js @@ -3,7 +3,7 @@ var s = new ShardingTest({name: "keystring", shards: 2}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {name: 1}}); primary = s.getPrimaryShard("test").getDB("test"); diff --git a/jstests/sharding/kill_op_overflow.js b/jstests/sharding/kill_op_overflow.js index 2d30799b9aa..6ca5c236bab 100644 --- a/jstests/sharding/kill_op_overflow.js +++ b/jstests/sharding/kill_op_overflow.js @@ -6,7 +6,7 @@ "use strict"; var st = new ShardingTest({name: "shard1", shards: 1, mongos: 1}); - assert.commandFailed( - st.s.getDB("admin").runCommand({killOp: 1, op: "shard0000:99999999999999999999999"})); + assert.commandFailed(st.s.getDB("admin").runCommand( + {killOp: 1, op: st.shard0.shardName + ":99999999999999999999999"})); st.stop(); })(); diff --git a/jstests/sharding/kill_pinned_cursor.js b/jstests/sharding/kill_pinned_cursor.js index f636f981082..0ba46f59b8f 100644 --- a/jstests/sharding/kill_pinned_cursor.js +++ b/jstests/sharding/kill_pinned_cursor.js @@ -12,7 +12,8 @@ const kFailPointName = "waitAfterPinningCursorBeforeGetMoreBatch"; const kFailpointOptions = {shouldCheckForInterrupt: true}; - const st = new ShardingTest({shards: 2}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + const st = new ShardingTest({shards: 2, other: {shardAsReplicaSet: false}}); const kDBName = "test"; const mongosDB = st.s.getDB(kDBName); const shard0DB = st.shard0.getDB(kDBName); diff --git a/jstests/sharding/large_chunk.js b/jstests/sharding/large_chunk.js index 1f224fc211a..786ac576a0d 100644 --- a/jstests/sharding/large_chunk.js +++ b/jstests/sharding/large_chunk.js @@ -20,7 +20,7 @@ // Turn on sharding on the 'test.foo' collection and generate a large chunk assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); var bigString = ""; while (bigString.length < 10000) { diff --git a/jstests/sharding/limit_push.js b/jstests/sharding/limit_push.js index 787576ba6ff..ec744207e97 100644 --- a/jstests/sharding/limit_push.js +++ b/jstests/sharding/limit_push.js @@ -14,7 +14,7 @@ // Shard the collection s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.limit_push", key: {x: 1}}); // Now split the and move the data between the shards diff --git a/jstests/sharding/localhostAuthBypass.js b/jstests/sharding/localhostAuthBypass.js index 61bbabd762a..d2035acdba2 100644 --- a/jstests/sharding/localhostAuthBypass.js +++ b/jstests/sharding/localhostAuthBypass.js @@ -92,7 +92,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; var res = mongo.getDB("admin").runCommand({ moveChunk: "test.foo", find: {_id: 1}, - to: "shard0000" // Arbitrary shard. + to: st.shard0.shardName // Arbitrary shard. }); assert.commandFailedWithCode(res, authorizeErrorCode, "moveChunk"); assert.commandFailedWithCode(mongo.getDB("test").copyDatabase("admin", "admin2"), @@ -176,7 +176,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; print("============ enabling sharding on test.foo."); mongo.getDB("admin").runCommand({enableSharding: "test"}); - shardingTest.ensurePrimaryShard('test', 'shard0001'); + shardingTest.ensurePrimaryShard('test', st.shard1.shardName); mongo.getDB("admin").runCommand({shardCollection: "test.foo", key: {_id: 1}}); var test = mongo.getDB("test"); @@ -186,6 +186,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; }; var start = function() { + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. return new ShardingTest({ auth: "", shards: numShards, @@ -193,7 +194,8 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; keyFile: keyfile, chunkSize: 1, useHostname: - false // Must use localhost to take advantage of the localhost auth bypass + false, // Must use localhost to take advantage of the localhost auth bypass + shardAsReplicaSet: false } }); }; diff --git a/jstests/sharding/lookup_change_stream_post_image_compound_shard_key.js b/jstests/sharding/lookup_change_stream_post_image_compound_shard_key.js index 3c89fd6b85c..bc69d734a78 100644 --- a/jstests/sharding/lookup_change_stream_post_image_compound_shard_key.js +++ b/jstests/sharding/lookup_change_stream_post_image_compound_shard_key.js @@ -26,7 +26,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); diff --git a/jstests/sharding/lookup_change_stream_post_image_hashed_shard_key.js b/jstests/sharding/lookup_change_stream_post_image_hashed_shard_key.js index 613ca8f2b33..db8ac5ed31d 100644 --- a/jstests/sharding/lookup_change_stream_post_image_hashed_shard_key.js +++ b/jstests/sharding/lookup_change_stream_post_image_hashed_shard_key.js @@ -27,7 +27,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); diff --git a/jstests/sharding/lookup_change_stream_post_image_id_shard_key.js b/jstests/sharding/lookup_change_stream_post_image_id_shard_key.js index 0f16c4928a1..a6dd9631dac 100644 --- a/jstests/sharding/lookup_change_stream_post_image_id_shard_key.js +++ b/jstests/sharding/lookup_change_stream_post_image_id_shard_key.js @@ -26,7 +26,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -38,7 +38,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey) chunk to shard0001. + // Move the [0, MaxKey) chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); @@ -78,7 +78,7 @@ // Split the [0, MaxKey) chunk into 2: [0, 500), [500, MaxKey). assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 500}})); - // Move the [500, MaxKey) chunk back to shard0000. + // Move the [500, MaxKey) chunk back to st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1000}, to: st.rs0.getURL()})); diff --git a/jstests/sharding/mapReduce_inSharded.js b/jstests/sharding/mapReduce_inSharded.js index 853cdb33bad..6737d5fec0c 100644 --- a/jstests/sharding/mapReduce_inSharded.js +++ b/jstests/sharding/mapReduce_inSharded.js @@ -14,7 +14,7 @@ {shards: 2, verbose: 1, mongos: 1, other: {chunkSize: 1, enableBalancer: true}}); st.adminCommand({enablesharding: "mrShard"}); - st.ensurePrimaryShard('mrShard', 'shard0001'); + st.ensurePrimaryShard('mrShard', st.shard1.shardName); st.adminCommand({shardcollection: "mrShard.srcSharded", key: {"_id": 1}}); var db = st.getDB("mrShard"); diff --git a/jstests/sharding/mapReduce_inSharded_outSharded.js b/jstests/sharding/mapReduce_inSharded_outSharded.js index d73eb517e98..d16fe3f9214 100644 --- a/jstests/sharding/mapReduce_inSharded_outSharded.js +++ b/jstests/sharding/mapReduce_inSharded_outSharded.js @@ -9,13 +9,17 @@ assert.eq(out.counts.output, 512, "output count is wrong"); }; - var st = new ShardingTest( - {shards: 2, verbose: 1, mongos: 1, other: {chunkSize: 1, enableBalancer: true}}); + var st = new ShardingTest({ + shards: 2, + verbose: 1, + mongos: 1, + other: {chunkSize: 1, enableBalancer: true, shardAsReplicaSet: false} + }); var admin = st.s0.getDB('admin'); assert.commandWorked(admin.runCommand({enablesharding: "mrShard"})); - st.ensurePrimaryShard('mrShard', 'shard0001'); + st.ensurePrimaryShard('mrShard', st.shard1.shardName); assert.commandWorked( admin.runCommand({shardcollection: "mrShard.srcSharded", key: {"_id": 1}})); diff --git a/jstests/sharding/mapReduce_nonSharded.js b/jstests/sharding/mapReduce_nonSharded.js index ad94004a68a..d194623c3e7 100644 --- a/jstests/sharding/mapReduce_nonSharded.js +++ b/jstests/sharding/mapReduce_nonSharded.js @@ -10,7 +10,7 @@ var st = new ShardingTest( {shards: 2, verbose: 1, mongos: 1, other: {chunkSize: 1, enableBalancer: true}}); st.adminCommand({enablesharding: "mrShard"}); -st.ensurePrimaryShard('mrShard', 'shard0001'); +st.ensurePrimaryShard('mrShard', st.shard1.shardName); st.adminCommand({shardcollection: "mrShard.srcSharded", key: {"_id": 1}}); var db = st.getDB("mrShard"); diff --git a/jstests/sharding/mapReduce_outSharded.js b/jstests/sharding/mapReduce_outSharded.js index 90452c0c186..3a95fb9aa65 100644 --- a/jstests/sharding/mapReduce_outSharded.js +++ b/jstests/sharding/mapReduce_outSharded.js @@ -6,11 +6,16 @@ var verifyOutput = function(out) { assert.eq(out.counts.output, 512, "output count is wrong"); }; -var st = new ShardingTest( - {shards: 2, verbose: 1, mongos: 1, other: {chunkSize: 1, enableBalancer: true}}); +// TODO: SERVER-33444 remove shardAsReplicaSet: false +var st = new ShardingTest({ + shards: 2, + verbose: 1, + mongos: 1, + other: {chunkSize: 1, enableBalancer: true, shardAsReplicaSet: false} +}); st.adminCommand({enablesharding: "mrShard"}); -st.ensurePrimaryShard('mrShard', 'shard0001'); +st.ensurePrimaryShard('mrShard', st.shard1.shardName); st.adminCommand({shardcollection: "mrShard.srcSharded", key: {"_id": 1}}); var db = st.getDB("mrShard"); diff --git a/jstests/sharding/max_time_ms_sharded.js b/jstests/sharding/max_time_ms_sharded.js index 0a66ce3bf60..353a3439642 100644 --- a/jstests/sharding/max_time_ms_sharded.js +++ b/jstests/sharding/max_time_ms_sharded.js @@ -39,11 +39,11 @@ // Pre-split collection: shard 0 takes {_id: {$lt: 0}}, shard 1 takes {_id: {$gte: 0}}. // assert.commandWorked(admin.runCommand({enableSharding: coll.getDB().getName()})); - st.ensurePrimaryShard(coll.getDB().toString(), "shard0000"); + st.ensurePrimaryShard(coll.getDB().toString(), st.shard0.shardName); assert.commandWorked(admin.runCommand({shardCollection: coll.getFullName(), key: {_id: 1}})); assert.commandWorked(admin.runCommand({split: coll.getFullName(), middle: {_id: 0}})); assert.commandWorked( - admin.runCommand({moveChunk: coll.getFullName(), find: {_id: 0}, to: "shard0001"})); + admin.runCommand({moveChunk: coll.getFullName(), find: {_id: 0}, to: st.shard1.shardName})); // // Insert 100 documents into sharded collection, such that each shard owns 50. @@ -204,7 +204,7 @@ // res = admin.runCommand({ // moveChunk: coll.getFullName(), // find: {_id: 0}, - // to: "shard0000", + // to: st.shard0.shardName, // maxTimeMS: 1000 * 60 * 60 * 24 // }); // assert.commandFailed( @@ -217,7 +217,7 @@ // assert.commandWorked(admin.runCommand({ // moveChunk: coll.getFullName(), // find: {_id: 0}, - // to: "shard0000", + // to: st.shard0.shardName, // maxTimeMS: 1000 * 60 * 60 * 24 // }), // "expected moveChunk to not hit time limit in mongod"); diff --git a/jstests/sharding/migrateBig.js b/jstests/sharding/migrateBig.js index 61328320e87..5cdc03d292e 100644 --- a/jstests/sharding/migrateBig.js +++ b/jstests/sharding/migrateBig.js @@ -6,7 +6,7 @@ assert.writeOK( s.config.settings.update({_id: "balancer"}, {$set: {_waitForDelete: true}}, true)); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: "test.foo", key: {x: 1}})); var db = s.getDB("test"); diff --git a/jstests/sharding/migrateBig_balancer.js b/jstests/sharding/migrateBig_balancer.js index ed4b792c915..990b76019c0 100644 --- a/jstests/sharding/migrateBig_balancer.js +++ b/jstests/sharding/migrateBig_balancer.js @@ -7,8 +7,12 @@ (function() { "use strict"; - var st = - new ShardingTest({name: 'migrateBig_balancer', shards: 2, other: {enableBalancer: true}}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest({ + name: 'migrateBig_balancer', + shards: 2, + other: {enableBalancer: true, shardAsReplicaSet: false} + }); var mongos = st.s; var admin = mongos.getDB("admin"); @@ -16,7 +20,7 @@ var coll = db.getCollection("stuff"); assert.commandWorked(admin.runCommand({enablesharding: coll.getDB().getName()})); - st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); + st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); var data = "x"; var nsq = 16; diff --git a/jstests/sharding/min_optime_recovery_on_failed_move_chunk_commit.js b/jstests/sharding/min_optime_recovery_on_failed_move_chunk_commit.js index 4bd880477ce..6af13213a46 100644 --- a/jstests/sharding/min_optime_recovery_on_failed_move_chunk_commit.js +++ b/jstests/sharding/min_optime_recovery_on_failed_move_chunk_commit.js @@ -5,7 +5,8 @@ (function() { "use strict"; - var st = new ShardingTest({shards: 1}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest({shards: 1, other: {shardAsReplicaSet: false}}); // Insert a recovery doc with non-zero minOpTimeUpdaters to simulate a migration // process that crashed in the middle of the critical section. @@ -13,7 +14,7 @@ var recoveryDoc = { _id: 'minOpTimeRecovery', configsvrConnectionString: st.configRS.getURL(), - shardName: 'shard0000', + shardName: st.shard0.shardName, minOpTime: {ts: Timestamp(0, 0), t: 0}, minOpTimeUpdaters: 2 }; diff --git a/jstests/sharding/min_optime_recovery_on_successful_move_chunk_commit.js b/jstests/sharding/min_optime_recovery_on_successful_move_chunk_commit.js index b28c3caed8b..b67f0bde73e 100644 --- a/jstests/sharding/min_optime_recovery_on_successful_move_chunk_commit.js +++ b/jstests/sharding/min_optime_recovery_on_successful_move_chunk_commit.js @@ -8,7 +8,7 @@ var testDB = st.s.getDB('test'); testDB.adminCommand({enableSharding: 'test'}); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); testDB.adminCommand({shardCollection: 'test.user', key: {x: 1}}); var priConn = st.configRS.getPrimary(); @@ -21,9 +21,9 @@ } }); - testDB.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: 'shard0001'}); + testDB.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: st.shard1.shardName}); - var shardAdmin = st.d0.getDB('admin'); + var shardAdmin = st.rs0.getPrimary().getDB('admin'); var minOpTimeRecoveryDoc = shardAdmin.system.version.findOne({_id: 'minOpTimeRecovery'}); assert.neq(null, minOpTimeRecoveryDoc); diff --git a/jstests/sharding/mongos_shard_failure_tolerance.js b/jstests/sharding/mongos_shard_failure_tolerance.js index 0c189fd1a55..5443450f3bc 100644 --- a/jstests/sharding/mongos_shard_failure_tolerance.js +++ b/jstests/sharding/mongos_shard_failure_tolerance.js @@ -55,7 +55,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; mongosConnIdle = new Mongo(st.s0.host); - MongoRunner.stopMongod(st.shard2); + st.rs2.stopSet(); jsTest.log("Testing active connection..."); @@ -99,8 +99,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; mongosConnIdle = new Mongo(st.s0.host); - MongoRunner.stopMongod(st.shard1); - + st.rs1.stopSet(); jsTest.log("Testing active connection..."); assert.neq(null, mongosConnActive.getCollection(collSharded.toString()).findOne({_id: -1})); diff --git a/jstests/sharding/mongos_validate_writes.js b/jstests/sharding/mongos_validate_writes.js index 23994003be4..85b7dbb136f 100644 --- a/jstests/sharding/mongos_validate_writes.js +++ b/jstests/sharding/mongos_validate_writes.js @@ -19,7 +19,7 @@ var staleCollB = staleMongosB.getCollection(coll + ""); assert.commandWorked(admin.runCommand({enableSharding: coll.getDB() + ""})); - st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); + st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); coll.ensureIndex({a: 1}); assert.commandWorked(admin.runCommand({shardCollection: coll + "", key: {a: 1}})); @@ -69,10 +69,11 @@ coll.ensureIndex({e: 1}); // Deletes need to be across two shards to trigger an error - this is probably an exceptional // case - st.ensurePrimaryShard(coll.getDB().getName(), 'shard0000'); + st.ensurePrimaryShard(coll.getDB().getName(), st.shard0.shardName); assert.commandWorked(admin.runCommand({shardCollection: coll + "", key: {e: 1}})); assert.commandWorked(admin.runCommand({split: coll + "", middle: {e: 0}})); - assert.commandWorked(admin.runCommand({moveChunk: coll + "", find: {e: 0}, to: "shard0001"})); + assert.commandWorked( + admin.runCommand({moveChunk: coll + "", find: {e: 0}, to: st.shard1.shardName})); // Make sure we can successfully remove, even though we have stale state assert.writeOK(coll.insert({e: "e"})); diff --git a/jstests/sharding/move_chunk_missing_idx.js b/jstests/sharding/move_chunk_missing_idx.js index 8125e8e6600..e52d95f722a 100644 --- a/jstests/sharding/move_chunk_missing_idx.js +++ b/jstests/sharding/move_chunk_missing_idx.js @@ -8,7 +8,7 @@ var st = new ShardingTest({shards: 2}); var testDB = st.s.getDB('test'); testDB.adminCommand({enableSharding: 'test'}); -st.ensurePrimaryShard(testDB.toString(), "shard0001"); +st.ensurePrimaryShard(testDB.toString(), st.shard1.shardName); testDB.adminCommand({shardCollection: 'test.user', key: {x: 1}}); // Test procedure: @@ -22,20 +22,22 @@ testDB.adminCommand({split: 'test.user', middle: {x: 0}}); testDB.adminCommand({split: 'test.user', middle: {x: 10}}); // Collection does not exist, no chunk, index missing case at destination case. -assert.commandWorked(testDB.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: 'shard0000'})); +assert.commandWorked( + testDB.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName})); // Drop index since last moveChunk created this. -st.d0.getDB('test').user.dropIndex({a: 1, b: 1}); +st.rs0.getPrimary().getDB('test').user.dropIndex({a: 1, b: 1}); // Collection exist but empty, index missing at destination case. -assert.commandWorked(testDB.adminCommand({moveChunk: 'test.user', find: {x: 10}, to: 'shard0000'})); +assert.commandWorked( + testDB.adminCommand({moveChunk: 'test.user', find: {x: 10}, to: st.shard0.shardName})); // Drop index since last moveChunk created this. -st.d0.getDB('test').user.dropIndex({a: 1, b: 1}); +st.rs0.getPrimary().getDB('test').user.dropIndex({a: 1, b: 1}); // Collection not empty, index missing at destination case. testDB.user.insert({x: 10}); assert.commandFailed( - testDB.adminCommand({moveChunk: 'test.user', find: {x: -10}, to: 'shard0000'})); + testDB.adminCommand({moveChunk: 'test.user', find: {x: -10}, to: st.shard0.shardName})); st.stop(); diff --git a/jstests/sharding/move_chunk_open_cursors.js b/jstests/sharding/move_chunk_open_cursors.js index a821aa0d549..fe0942f0558 100644 --- a/jstests/sharding/move_chunk_open_cursors.js +++ b/jstests/sharding/move_chunk_open_cursors.js @@ -18,7 +18,7 @@ assert.writeOK(bulk.execute()); // Make sure we know which shard will host the data to begin. - st.ensurePrimaryShard(dbName, "shard0000"); + st.ensurePrimaryShard(dbName, st.shard0.shardName); assert.commandWorked(st.admin.runCommand({enableSharding: dbName})); assert.commandWorked(st.admin.runCommand({shardCollection: testNs, key: {_id: 1}})); @@ -32,7 +32,7 @@ const aggCursor = new DBCommandCursor(coll.getDB(), aggResponse, getMoreBatchSize); assert(st.adminCommand({split: testNs, middle: {_id: nDocs / 2}})); - assert(st.adminCommand({moveChunk: testNs, find: {_id: nDocs - 1}, to: "shard0001"})); + assert(st.adminCommand({moveChunk: testNs, find: {_id: nDocs - 1}, to: st.shard1.shardName})); assert.eq( aggCursor.itcount(), @@ -44,7 +44,7 @@ coll.runCommand({find: collName, filter: {}, batchSize: getMoreBatchSize})); const findCursor = new DBCommandCursor(coll.getDB(), findResponse, getMoreBatchSize); assert(st.adminCommand({split: testNs, middle: {_id: nDocs / 4}})); - assert(st.adminCommand({moveChunk: testNs, find: {_id: 0}, to: "shard0001"})); + assert(st.adminCommand({moveChunk: testNs, find: {_id: 0}, to: st.shard1.shardName})); assert.eq( findCursor.itcount(), diff --git a/jstests/sharding/move_stale_mongos.js b/jstests/sharding/move_stale_mongos.js index 91647dbb3da..ab0643b128b 100644 --- a/jstests/sharding/move_stale_mongos.js +++ b/jstests/sharding/move_stale_mongos.js @@ -2,13 +2,14 @@ // Tests that stale mongoses can properly move chunks. // -var st = new ShardingTest({shards: 2, mongos: 2}); +// TODO: SERVER-33444 remove shardAsReplicaSet: false +var st = new ShardingTest({shards: 2, mongos: 2, other: {shardAsReplicaSet: false}}); var admin = st.s0.getDB('admin'); var testDb = 'test'; var testNs = 'test.foo'; assert.commandWorked(admin.runCommand({enableSharding: testDb})); -st.ensurePrimaryShard(testDb, st.shard0.shardName); +st.ensurePrimaryShard(testDb, st.shard0.name); assert.commandWorked(admin.runCommand({shardCollection: testNs, key: {_id: 1}})); var curShardIndex = 0; @@ -16,7 +17,7 @@ for (var i = 0; i < 100; i += 10) { assert.commandWorked(st.s0.getDB('admin').runCommand({split: testNs, middle: {_id: i}})); st.configRS.awaitLastOpCommitted(); // Ensure that other mongos sees the split var nextShardIndex = (curShardIndex + 1) % 2; - var toShard = (nextShardIndex == 0) ? st.shard0.shardName : st.shard1.shardName; + var toShard = (nextShardIndex == 0) ? st.shard0.name : st.shard1.name; assert.commandWorked(st.s1.getDB('admin').runCommand( {moveChunk: testNs, find: {_id: i + 5}, to: toShard, _waitForDelete: true})); curShardIndex = nextShardIndex; diff --git a/jstests/sharding/movechunk_include.js b/jstests/sharding/movechunk_include.js index 7c20f0d675f..285ec587682 100644 --- a/jstests/sharding/movechunk_include.js +++ b/jstests/sharding/movechunk_include.js @@ -6,7 +6,7 @@ function setupMoveChunkTest(st) { var testcoll = testdb.foo; st.adminCommand({enablesharding: "test"}); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); st.adminCommand({shardcollection: "test.foo", key: {_id: 1}}); var str = ""; @@ -33,6 +33,7 @@ function setupMoveChunkTest(st) { break; } } + var result = st.adminCommand({ movechunk: "test.foo", find: {_id: 1}, diff --git a/jstests/sharding/movechunk_parallel.js b/jstests/sharding/movechunk_parallel.js index 8e54d0ab551..37fddce75f4 100644 --- a/jstests/sharding/movechunk_parallel.js +++ b/jstests/sharding/movechunk_parallel.js @@ -27,7 +27,7 @@ load('./jstests/libs/chunk_manipulation_util.js'); assert.commandWorked(st.splitAt('TestDB.TestColl', {Key: 20})); assert.commandWorked(st.splitAt('TestDB.TestColl', {Key: 30})); - // Move two of the chunks to shard0001 so we have option to do parallel balancing + // Move two of the chunks to st.shard1.shardName so we have option to do parallel balancing assert.commandWorked(st.moveChunk('TestDB.TestColl', {Key: 20}, st.shard1.shardName)); assert.commandWorked(st.moveChunk('TestDB.TestColl', {Key: 30}, st.shard1.shardName)); diff --git a/jstests/sharding/movechunk_with_moveParanoia.js b/jstests/sharding/movechunk_with_moveParanoia.js index 740878507b2..18a2f31658f 100644 --- a/jstests/sharding/movechunk_with_moveParanoia.js +++ b/jstests/sharding/movechunk_with_moveParanoia.js @@ -1,10 +1,17 @@ /** * This test sets moveParanoia flag and then check that the directory is created with the moved data */ + +// TODO: SERVER-33444 remove shardAsReplicaSet: false var st = new ShardingTest({ shards: 2, mongos: 1, - other: {chunkSize: 1, enableAutoSplit: true, shardOptions: {moveParanoia: ""}} + other: { + chunkSize: 1, + enableAutoSplit: true, + shardOptions: {moveParanoia: ""}, + shardAsReplicaSet: false + } }); load("jstests/sharding/movechunk_include.js"); diff --git a/jstests/sharding/moveprimary_ignore_sharded.js b/jstests/sharding/moveprimary_ignore_sharded.js index 8bad709bd1d..69e6ed3b8e4 100644 --- a/jstests/sharding/moveprimary_ignore_sharded.js +++ b/jstests/sharding/moveprimary_ignore_sharded.js @@ -23,9 +23,9 @@ assert.writeOK(mongosA.getCollection("bar.coll2").insert({hello: "world"})); // Enable sharding printjson(adminA.runCommand({enableSharding: "foo"})); -st.ensurePrimaryShard('foo', 'shard0001'); +st.ensurePrimaryShard('foo', st.shard1.shardName); printjson(adminA.runCommand({enableSharding: "bar"})); -st.ensurePrimaryShard('bar', 'shard0000'); +st.ensurePrimaryShard('bar', st.shard0.shardName); // Setup three collections per-db // 0 : not sharded diff --git a/jstests/sharding/mrShardedOutput.js b/jstests/sharding/mrShardedOutput.js index b7bbcb1f344..b3981cacb36 100644 --- a/jstests/sharding/mrShardedOutput.js +++ b/jstests/sharding/mrShardedOutput.js @@ -4,7 +4,8 @@ // collection input twice the size of the first and outputs it to the new sharded // collection created in the first pass. -var st = new ShardingTest({shards: 2, other: {chunkSize: 1}}); +// TODO: SERVER-33444 remove shardAsReplicaSet: false +var st = new ShardingTest({shards: 2, other: {chunkSize: 1, shardAsReplicaSet: false}}); var config = st.getDB("config"); st.adminCommand({enablesharding: "test"}); diff --git a/jstests/sharding/mrShardedOutputAuth.js b/jstests/sharding/mrShardedOutputAuth.js index 93164e5e128..3dc02da7072 100644 --- a/jstests/sharding/mrShardedOutputAuth.js +++ b/jstests/sharding/mrShardedOutputAuth.js @@ -36,8 +36,13 @@ assert.eq(outputDb.numbers_out.count(), 0, "map/reduce should not have succeeded"); } - var st = new ShardingTest( - {name: "mrShardedOutputAuth", shards: 1, mongos: 1, other: {keyFile: 'jstests/libs/key1'}}); + // TODO: Remove 'shardAsReplicaSet: false' when SERVER-32672 is fixed. + var st = new ShardingTest({ + name: "mrShardedOutputAuth", + shards: 1, + mongos: 1, + other: {keyFile: 'jstests/libs/key1', shardAsReplicaSet: false} + }); // Setup the users to the input, output and admin databases var mongos = st.s; diff --git a/jstests/sharding/mr_and_agg_versioning.js b/jstests/sharding/mr_and_agg_versioning.js index e2d1c6f7869..765ba02ae16 100644 --- a/jstests/sharding/mr_and_agg_versioning.js +++ b/jstests/sharding/mr_and_agg_versioning.js @@ -10,7 +10,7 @@ var numKeys = 1000; st.s.adminCommand({enableSharding: dbName}); - st.ensurePrimaryShard(dbName, 'shard0000'); + st.ensurePrimaryShard(dbName, st.shard0.shardName); st.s.adminCommand({shardCollection: collName, key: {key: 1}}); // Load chunk data to the stale mongoses before moving a chunk @@ -20,7 +20,7 @@ staleMongos2.getCollection(collName).find().itcount(); st.s.adminCommand({split: collName, middle: {key: numKeys / 2}}); - st.s.adminCommand({moveChunk: collName, find: {key: 0}, to: 'shard0001'}); + st.s.adminCommand({moveChunk: collName, find: {key: 0}, to: st.shard1.shardName}); var bulk = st.s.getCollection(collName).initializeUnorderedBulkOp(); for (var i = 0; i < numDocs; i++) { diff --git a/jstests/sharding/mr_noscripting.js b/jstests/sharding/mr_noscripting.js index 6bf196c587e..d5781e8fcea 100644 --- a/jstests/sharding/mr_noscripting.js +++ b/jstests/sharding/mr_noscripting.js @@ -3,7 +3,8 @@ var shardOpts = [ {} // just use default params ]; -var st = new ShardingTest({shards: shardOpts, other: {nopreallocj: 1}}); +// TODO: SERVER-33444 remove shardAsReplicaSet: false +var st = new ShardingTest({shards: shardOpts, other: {nopreallocj: 1, shardAsReplicaSet: false}}); var mongos = st.s; st.shardColl('bar', {x: 1}); diff --git a/jstests/sharding/multi_mongos2.js b/jstests/sharding/multi_mongos2.js index 360bb629471..aef63e6b684 100644 --- a/jstests/sharding/multi_mongos2.js +++ b/jstests/sharding/multi_mongos2.js @@ -5,7 +5,7 @@ var st = new ShardingTest({shards: 2, mongos: 2}); assert.commandWorked(st.s0.adminCommand({enablesharding: "test"})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(st.s0.adminCommand({shardcollection: "test.foo", key: {num: 1}})); // Test queries diff --git a/jstests/sharding/multi_mongos2a.js b/jstests/sharding/multi_mongos2a.js index e76dd547e85..f0e7a104e60 100644 --- a/jstests/sharding/multi_mongos2a.js +++ b/jstests/sharding/multi_mongos2a.js @@ -5,7 +5,7 @@ var st = new ShardingTest({shards: 2, mongos: 2}); assert.commandWorked(st.s0.adminCommand({enablesharding: "test"})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(st.s0.adminCommand({shardcollection: "test.foo", key: {num: 1}})); assert.writeOK(st.s0.getDB('test').existing.insert({_id: 1})); diff --git a/jstests/sharding/noUpdateButN1inAnotherCollection.js b/jstests/sharding/noUpdateButN1inAnotherCollection.js index a95ee5924a0..910717b811f 100644 --- a/jstests/sharding/noUpdateButN1inAnotherCollection.js +++ b/jstests/sharding/noUpdateButN1inAnotherCollection.js @@ -17,8 +17,8 @@ ns2 = "test.coll2"; adminSA = mongosA.getDB("admin"); adminSA.runCommand({enableSharding: "test"}); -adminSA.runCommand({moveprimary: "test", to: "shard0000"}); -adminSA.runCommand({moveprimary: "test2", to: "shard0001"}); +adminSA.runCommand({moveprimary: "test", to: "s.shard0.shardName"}); +adminSA.runCommand({moveprimary: "test2", to: "s.shard1.shardName"}); adminSA.runCommand({shardCollection: ns, key: {_id: 1}}); @@ -43,7 +43,7 @@ for (var i = 1; i < numDocs; i++) { debug("Inserted docs, now split chunks"); adminSA.runCommand({split: ns, find: {_id: 3}}); -adminSA.runCommand({movechunk: ns, find: {_id: 10}, to: "shard0001"}); +adminSA.runCommand({movechunk: ns, find: {_id: 10}, to: "s.shard1.shardName"}); var command = 'printjson(db.coll.update({ _id: 9 }, { $set: { a: "9" }}, true));'; diff --git a/jstests/sharding/parallel.js b/jstests/sharding/parallel.js index e9bd4c1f3ac..8247736793b 100644 --- a/jstests/sharding/parallel.js +++ b/jstests/sharding/parallel.js @@ -6,7 +6,7 @@ var s = new ShardingTest({name: "parallel", shards: numShards, mongos: 2}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {_id: 1}}); var db = s.getDB("test"); diff --git a/jstests/sharding/prefix_shard_key.js b/jstests/sharding/prefix_shard_key.js index 71a7ef03090..d633669e28b 100644 --- a/jstests/sharding/prefix_shard_key.js +++ b/jstests/sharding/prefix_shard_key.js @@ -9,14 +9,15 @@ (function() { 'use strict'; - var s = new ShardingTest({shards: 2}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var s = new ShardingTest({shards: 2, other: {shardAsReplicaSet: false}}); var db = s.getDB("test"); var admin = s.getDB("admin"); var config = s.getDB("config"); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); //******************Part 1******************** diff --git a/jstests/sharding/presplit.js b/jstests/sharding/presplit.js index de9efe410a0..ec71924fc53 100644 --- a/jstests/sharding/presplit.js +++ b/jstests/sharding/presplit.js @@ -3,7 +3,7 @@ var s = new ShardingTest({name: "presplit", shards: 2, mongos: 1, other: {chunkSize: 1}}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); // Insert enough data in 'test.foo' to fill several chunks, if it was sharded. bigString = ""; diff --git a/jstests/sharding/query_after_multi_write.js b/jstests/sharding/query_after_multi_write.js index a952484435c..4cfff22be4a 100644 --- a/jstests/sharding/query_after_multi_write.js +++ b/jstests/sharding/query_after_multi_write.js @@ -12,19 +12,19 @@ testDB.dropDatabase(); assert.commandWorked(testDB.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); assert.commandWorked(testDB.adminCommand({shardCollection: 'test.user', key: {x: 1}})); assert.commandWorked(testDB.adminCommand({split: 'test.user', middle: {x: 0}})); assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard1.shardName, _waitForDelete: true})); var testDB2 = st.s1.getDB('test'); testDB2.user.insert({x: 123456}); // Move chunk to bump version on a different mongos. assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0000', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName, _waitForDelete: true})); // Issue a query and make sure it gets routed to the right shard. assert.neq(null, testDB2.user.findOne({x: 123456})); @@ -32,7 +32,7 @@ // At this point, s1 thinks the version of 'test.user' is 2, bounce it again so it gets // incremented to 3 assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard1.shardName, _waitForDelete: true})); // Issue a query and make sure it gets routed to the right shard again. assert.neq(null, testDB2.user.findOne({x: 123456})); @@ -40,7 +40,7 @@ // At this point, s0 thinks the version of 'test.user' is 3, bounce it again so it gets // incremented to 4 assert.commandWorked(testDB.adminCommand( - {moveChunk: 'test.user', find: {x: 0}, to: 'shard0000', _waitForDelete: true})); + {moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName, _waitForDelete: true})); // Ensure that write commands with multi version do not reset the connection shard version // to diff --git a/jstests/sharding/remove1.js b/jstests/sharding/remove1.js index 27f6e1e4a75..d810c9380a0 100644 --- a/jstests/sharding/remove1.js +++ b/jstests/sharding/remove1.js @@ -5,7 +5,7 @@ var config = s.s0.getDB('config'); assert.commandWorked(s.s0.adminCommand({enableSharding: 'needToMove'})); - s.ensurePrimaryShard('needToMove', 'shard0000'); + s.ensurePrimaryShard('needToMove', s.shard0.shardName); // Returns an error when trying to remove a shard that doesn't exist. assert.commandFailedWithCode(s.s0.adminCommand({removeshard: "shardz"}), @@ -13,12 +13,12 @@ // First remove puts in draining mode, the second tells me a db needs to move, the third // actually removes - assert.commandWorked(s.s0.adminCommand({removeshard: "shard0000"})); + assert.commandWorked(s.s0.adminCommand({removeshard: s.shard0.shardName})); // Can't have more than one draining shard at a time - assert.commandFailedWithCode(s.s0.adminCommand({removeshard: "shard0001"}), + assert.commandFailedWithCode(s.s0.adminCommand({removeshard: s.shard1.shardName}), ErrorCodes.ConflictingOperationInProgress); - assert.eq(s.s0.adminCommand({removeshard: "shard0000"}).dbsToMove, + assert.eq(s.s0.adminCommand({removeshard: s.shard0.shardName}).dbsToMove, ['needToMove'], "didn't show db to move"); @@ -28,7 +28,7 @@ // removed s.awaitBalancerRound(); - var removeResult = assert.commandWorked(s.s0.adminCommand({removeshard: "shard0000"})); + var removeResult = assert.commandWorked(s.s0.adminCommand({removeshard: s.shard0.shardName})); assert.eq('completed', removeResult.state, 'Shard was not removed: ' + tojson(removeResult)); var existingShards = config.shards.find({}).toArray(); @@ -36,7 +36,7 @@ existingShards.length, "Removed server still appears in count: " + tojson(existingShards)); - assert.commandFailed(s.s0.adminCommand({removeshard: "shard0001"})); + assert.commandFailed(s.s0.adminCommand({removeshard: s.shard1.shardName})); // Should create a shard0002 shard var conn = MongoRunner.runMongod({}); diff --git a/jstests/sharding/remove3.js b/jstests/sharding/remove3.js index fdbaeb4d142..ab066f92f9d 100644 --- a/jstests/sharding/remove3.js +++ b/jstests/sharding/remove3.js @@ -5,7 +5,7 @@ var st = new ShardingTest({name: "remove_shard3", shards: 2, mongos: 2}); assert.commandWorked(st.s0.adminCommand({enableSharding: 'TestDB'})); - st.ensurePrimaryShard('TestDB', 'shard0000'); + st.ensurePrimaryShard('TestDB', st.shard0.shardName); assert.commandWorked(st.s0.adminCommand({shardCollection: 'TestDB.Coll', key: {_id: 1}})); assert.commandWorked(st.s0.adminCommand({split: 'TestDB.Coll', middle: {_id: 0}})); @@ -14,25 +14,25 @@ st.s0.getDB('TestDB').Coll.insert({_id: 1, value: 'Positive value'}); assert.commandWorked(st.s0.adminCommand( - {moveChunk: 'TestDB.Coll', find: {_id: 1}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: 'TestDB.Coll', find: {_id: 1}, to: st.shard1.shardName, _waitForDelete: true})); // Make sure both mongos instances know of the latest metadata assert.eq(2, st.s0.getDB('TestDB').Coll.find({}).toArray().length); assert.eq(2, st.s1.getDB('TestDB').Coll.find({}).toArray().length); - // Remove shard0001 + // Remove st.shard1.shardName var removeRes; - removeRes = assert.commandWorked(st.s0.adminCommand({removeShard: 'shard0001'})); + removeRes = assert.commandWorked(st.s0.adminCommand({removeShard: st.shard1.shardName})); assert.eq('started', removeRes.state); - removeRes = assert.commandWorked(st.s0.adminCommand({removeShard: 'shard0001'})); + removeRes = assert.commandWorked(st.s0.adminCommand({removeShard: st.shard1.shardName})); assert.eq('ongoing', removeRes.state); - // Move the one chunk off shard0001 + // Move the one chunk off st.shard1.shardName assert.commandWorked(st.s0.adminCommand( - {moveChunk: 'TestDB.Coll', find: {_id: 1}, to: 'shard0000', _waitForDelete: true})); + {moveChunk: 'TestDB.Coll', find: {_id: 1}, to: st.shard0.shardName, _waitForDelete: true})); // Remove shard must succeed now - removeRes = assert.commandWorked(st.s0.adminCommand({removeShard: 'shard0001'})); + removeRes = assert.commandWorked(st.s0.adminCommand({removeShard: st.shard1.shardName})); assert.eq('completed', removeRes.state); // Make sure both mongos instance refresh their metadata and do not reference the missing shard diff --git a/jstests/sharding/resume_change_stream.js b/jstests/sharding/resume_change_stream.js index 41a2426796a..e9a83adb561 100644 --- a/jstests/sharding/resume_change_stream.js +++ b/jstests/sharding/resume_change_stream.js @@ -34,7 +34,7 @@ assert.commandWorked(mongosDB.dropDatabase()); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -46,7 +46,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey] chunk to shard0001. + // Move the [0, MaxKey] chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); @@ -143,7 +143,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {shardKey: 50}})); - // Move the [50, MaxKey] chunk to shard0001. + // Move the [50, MaxKey] chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {shardKey: 51}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/return_partial_shards_down.js b/jstests/sharding/return_partial_shards_down.js index c3e0f3f2e27..37ecb758653 100644 --- a/jstests/sharding/return_partial_shards_down.js +++ b/jstests/sharding/return_partial_shards_down.js @@ -5,7 +5,9 @@ // Checking UUID consistency involves talking to shards, but this test shuts down shards. TestData.skipCheckingUUIDsConsistentAcrossCluster = true; -var st = new ShardingTest({shards: 3, mongos: 1, other: {mongosOptions: {verbose: 2}}}); +// TODO: SERVER-33444 remove shardAsReplicaSet: false +var st = new ShardingTest( + {shards: 3, mongos: 1, other: {mongosOptions: {verbose: 2}, shardAsReplicaSet: false}}); // Stop balancer, we're doing our own manual chunk distribution st.stopBalancer(); diff --git a/jstests/sharding/server_status.js b/jstests/sharding/server_status.js index ebc7fb6e42b..770300174b8 100644 --- a/jstests/sharding/server_status.js +++ b/jstests/sharding/server_status.js @@ -37,7 +37,7 @@ var mongosServerStatus = testDB.adminCommand({serverStatus: 1}); checkShardingServerStatus(mongosServerStatus); - var mongodServerStatus = st.d0.getDB('admin').runCommand({serverStatus: 1}); + var mongodServerStatus = st.rs0.getPrimary().getDB('admin').runCommand({serverStatus: 1}); checkShardingServerStatus(mongodServerStatus); st.stop(); diff --git a/jstests/sharding/shard1.js b/jstests/sharding/shard1.js index de962489afe..a5dfd4aca1c 100644 --- a/jstests/sharding/shard1.js +++ b/jstests/sharding/shard1.js @@ -20,7 +20,7 @@ assert.commandFailed(s.s0.adminCommand(shardCommand)); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.eq(3, db.foo.find().length(), "after partitioning count failed"); diff --git a/jstests/sharding/shard3.js b/jstests/sharding/shard3.js index a380e0b10c2..b0a2c0c72c8 100644 --- a/jstests/sharding/shard3.js +++ b/jstests/sharding/shard3.js @@ -8,7 +8,7 @@ db = s.getDB("test"); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {num: 1}}); // Ensure that the second mongos will see the movePrimary @@ -163,7 +163,7 @@ // ---- retry commands SERVER-1471 ---- s.adminCommand({enablesharding: "test2"}); - s.ensurePrimaryShard('test2', 'shard0000'); + s.ensurePrimaryShard('test2', s.shard0.shardName); s.adminCommand({shardcollection: "test2.foo", key: {num: 1}}); dba = s.getDB("test2"); dbb = s2.getDB("test2"); diff --git a/jstests/sharding/shard4.js b/jstests/sharding/shard4.js index 76b9394cb19..b43bd702555 100644 --- a/jstests/sharding/shard4.js +++ b/jstests/sharding/shard4.js @@ -5,7 +5,7 @@ s = new ShardingTest({name: "shard4", shards: 2, mongos: 2}); s2 = s._mongos[1]; s.adminCommand({enablesharding: "test"}); -s.ensurePrimaryShard('test', 'shard0001'); +s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {num: 1}}); if (s.configRS) { // Ensure that the second mongos will see the movePrimary diff --git a/jstests/sharding/shard5.js b/jstests/sharding/shard5.js index c4f05d610cd..e165c8ae5d0 100644 --- a/jstests/sharding/shard5.js +++ b/jstests/sharding/shard5.js @@ -8,7 +8,7 @@ s.stopBalancer(); s2 = s._mongos[1]; s.adminCommand({enablesharding: "test"}); -s.ensurePrimaryShard('test', 'shard0001'); +s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.foo", key: {num: 1}}); if (s.configRS) { // Ensure that the second mongos will see the movePrimary diff --git a/jstests/sharding/shard6.js b/jstests/sharding/shard6.js index 03c4b9523bf..5fa07ea1301 100644 --- a/jstests/sharding/shard6.js +++ b/jstests/sharding/shard6.js @@ -6,7 +6,7 @@ var s = new ShardingTest({name: "shard6", shards: 2}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.data", key: {num: 1}}); var version = s.getDB("admin").runCommand({buildinfo: 1}).versionArray; diff --git a/jstests/sharding/shard7.js b/jstests/sharding/shard7.js index 0f7f7acc28b..5ec1801b7c4 100644 --- a/jstests/sharding/shard7.js +++ b/jstests/sharding/shard7.js @@ -8,7 +8,7 @@ c = db['foo']; c.drop(); s.adminCommand({enablesharding: '' + db}); -s.ensurePrimaryShard(db.getName(), 'shard0001'); +s.ensurePrimaryShard(db.getName(), s.shard1.shardName); s.adminCommand({shardcollection: '' + c, key: {a: 1, b: 1}}); // Check query operation with some satisfiable and unsatisfiable queries. diff --git a/jstests/sharding/shard_config_db_collections.js b/jstests/sharding/shard_config_db_collections.js index d666f3c8d43..3a2e3f0590e 100644 --- a/jstests/sharding/shard_config_db_collections.js +++ b/jstests/sharding/shard_config_db_collections.js @@ -21,7 +21,7 @@ assert.eq(0, config.databases.count({"_id": "config"})); // Test that you cannot set the primary shard for config (not even to 'config') - assert.commandFailed(admin.runCommand({movePrimary: 'config', to: 'shard0000'})); + assert.commandFailed(admin.runCommand({movePrimary: 'config', to: st.shard0.shardName})); assert.commandFailed(admin.runCommand({movePrimary: 'config', to: 'config'})); st.stop(); @@ -79,10 +79,10 @@ // Insertion and retrieval assert.commandWorked(st.splitAt("config.sharded", {_id: 0})); - assert.commandWorked( - admin.runCommand({moveChunk: "config.sharded", find: {_id: -10}, to: "shard0000"})); - assert.commandWorked( - admin.runCommand({moveChunk: "config.sharded", find: {_id: 10}, to: "shard0001"})); + assert.commandWorked(admin.runCommand( + {moveChunk: "config.sharded", find: {_id: -10}, to: st.shard0.shardName})); + assert.commandWorked(admin.runCommand( + {moveChunk: "config.sharded", find: {_id: 10}, to: st.shard1.shardName})); assert.writeOK(config.sharded.insert({_id: -10})); assert.writeOK(config.sharded.insert({_id: 10})); @@ -135,10 +135,10 @@ assertNoChunksOnConfig(); // Test that we can move chunks between two non-config shards - assert.commandWorked( - admin.runCommand({moveChunk: "config.sharded", find: {_id: 40}, to: "shard0001"})); - assert.commandWorked( - admin.runCommand({moveChunk: "config.sharded", find: {_id: 40}, to: "shard0000"})); + assert.commandWorked(admin.runCommand( + {moveChunk: "config.sharded", find: {_id: 40}, to: st.shard1.shardName})); + assert.commandWorked(admin.runCommand( + {moveChunk: "config.sharded", find: {_id: 40}, to: st.shard0.shardName})); assertNoChunksOnConfig(); st.stop(); diff --git a/jstests/sharding/shard_existing.js b/jstests/sharding/shard_existing.js index 754d2a8bea8..1c8415662a7 100644 --- a/jstests/sharding/shard_existing.js +++ b/jstests/sharding/shard_existing.js @@ -24,7 +24,7 @@ assert.lte(totalSize, dataSize); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); var res = s.adminCommand({shardcollection: "test.data", key: {_id: 1}}); printjson(res); diff --git a/jstests/sharding/shard_key_immutable.js b/jstests/sharding/shard_key_immutable.js index bbc2a259e51..6e8c787393b 100644 --- a/jstests/sharding/shard_key_immutable.js +++ b/jstests/sharding/shard_key_immutable.js @@ -45,7 +45,7 @@ var st = new ShardingTest({shards: 2}); st.adminCommand({enablesharding: "test"}); -st.ensurePrimaryShard('test', 'shard0001'); +st.ensurePrimaryShard('test', st.shard1.shardName); st.adminCommand({shardcollection: "test.col0", key: {a: 1, b: 1}}); st.adminCommand({shardcollection: "test.col1", key: {'x.a': 1}}); diff --git a/jstests/sharding/shard_keycount.js b/jstests/sharding/shard_keycount.js index ae4c1d58574..78ac1c3fb6f 100644 --- a/jstests/sharding/shard_keycount.js +++ b/jstests/sharding/shard_keycount.js @@ -16,7 +16,7 @@ // Enable sharding on DB assert.commandWorked(s.s0.adminCommand({enablesharding: dbName})); - s.ensurePrimaryShard(dbName, 'shard0001'); + s.ensurePrimaryShard(dbName, s.shard1.shardName); // Enable sharding on collection assert.commandWorked(s.s0.adminCommand({shardcollection: ns, key: {_id: 1}})); diff --git a/jstests/sharding/shard_kill_and_pooling.js b/jstests/sharding/shard_kill_and_pooling.js index aba43f8e2e7..b7386f63f88 100644 --- a/jstests/sharding/shard_kill_and_pooling.js +++ b/jstests/sharding/shard_kill_and_pooling.js @@ -53,7 +53,7 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; var exitCode = killWith === 9 ? MongoRunner.EXIT_SIGKILL : MongoRunner.EXIT_CLEAN; - MongoRunner.stopMongod(st.shard0, killWith, {allowedExitCode: exitCode}); + st.rs0.stopSet(killWith, false, {allowedExitCode: exitCode}); jsTest.log("Restart shard..."); diff --git a/jstests/sharding/shard_targeting.js b/jstests/sharding/shard_targeting.js index f1d52768f3c..62d0f3fa88e 100644 --- a/jstests/sharding/shard_targeting.js +++ b/jstests/sharding/shard_targeting.js @@ -8,7 +8,7 @@ var s = new ShardingTest({shards: 2}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); var db = s.getDB("test"); var res; diff --git a/jstests/sharding/shard_with_special_db_names.js b/jstests/sharding/shard_with_special_db_names.js index adb632dd09e..75f0ea19bb5 100644 --- a/jstests/sharding/shard_with_special_db_names.js +++ b/jstests/sharding/shard_with_special_db_names.js @@ -6,12 +6,12 @@ var specialNS = specialDB + ".special"; assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: "test.data", key: {num: 1}})); // Test that the database will not complain "cannot have 2 database names that differs on case" assert.commandWorked(s.s0.adminCommand({enablesharding: specialDB})); - s.ensurePrimaryShard(specialDB, 'shard0000'); + s.ensurePrimaryShard(specialDB, s.shard0.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: specialNS, key: {num: 1}})); var exists = s.getDB("config").collections.find({_id: specialNS}).itcount(); diff --git a/jstests/sharding/sharded_limit_batchsize.js b/jstests/sharding/sharded_limit_batchsize.js index 997d9b61acd..7d47db46e7d 100644 --- a/jstests/sharding/sharded_limit_batchsize.js +++ b/jstests/sharding/sharded_limit_batchsize.js @@ -91,11 +91,11 @@ // Enable sharding and pre-split the sharded collection. assert.commandWorked(db.adminCommand({enableSharding: db.getName()})); - st.ensurePrimaryShard(db.getName(), "shard0000"); + st.ensurePrimaryShard(db.getName(), st.shard0.shardName); db.adminCommand({shardCollection: shardedCol.getFullName(), key: {_id: 1}}); assert.commandWorked(db.adminCommand({split: shardedCol.getFullName(), middle: {_id: 0}})); - assert.commandWorked( - db.adminCommand({moveChunk: shardedCol.getFullName(), find: {_id: 0}, to: "shard0001"})); + assert.commandWorked(db.adminCommand( + {moveChunk: shardedCol.getFullName(), find: {_id: 0}, to: st.shard1.shardName})); // Write 10 documents to shard 0, and 10 documents to shard 1 inside the sharded collection. // Write 20 documents which all go to the primary shard in the unsharded collection. diff --git a/jstests/sharding/sharding_balance1.js b/jstests/sharding/sharding_balance1.js index 4213b47d6d7..413a7194c22 100644 --- a/jstests/sharding/sharding_balance1.js +++ b/jstests/sharding/sharding_balance1.js @@ -4,7 +4,7 @@ var s = new ShardingTest({shards: 2, mongos: 1, other: {chunkSize: 1, enableBalancer: true}}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); var db = s.getDB("test"); @@ -28,12 +28,13 @@ function diff1() { var x = s.chunkCounts("foo"); printjson(x); - return Math.max(x.shard0000, x.shard0001) - Math.min(x.shard0000, x.shard0001); + return Math.max(x[s.shard0.shardName], x[s.shard1.shardName]) - + Math.min(x[s.shard0.shardName], x[s.shard1.shardName]); } function sum() { var x = s.chunkCounts("foo"); - return x.shard0000 + x.shard0001; + return x[s.shard0.shardName] + x[s.shard1.shardName]; } assert.lt(20, diff1(), "big differential here"); diff --git a/jstests/sharding/sharding_balance2.js b/jstests/sharding/sharding_balance2.js index e72bcdba955..b2befe5dd22 100644 --- a/jstests/sharding/sharding_balance2.js +++ b/jstests/sharding/sharding_balance2.js @@ -64,7 +64,7 @@ s.awaitBalancerRound(); var chunkCounts = s.chunkCounts('foo', 'test'); - assert.eq(0, chunkCounts.shard0001); + assert.eq(0, chunkCounts[s.rs1.name]); s.stop(); })(); diff --git a/jstests/sharding/sharding_balance3.js b/jstests/sharding/sharding_balance3.js index fa4ad9e96d1..155403e0b7c 100644 --- a/jstests/sharding/sharding_balance3.js +++ b/jstests/sharding/sharding_balance3.js @@ -10,7 +10,7 @@ }); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.config.settings.find().forEach(printjson); @@ -35,7 +35,8 @@ function diff1() { var x = s.chunkCounts("foo"); printjson(x); - return Math.max(x.shard0000, x.shard0001) - Math.min(x.shard0000, x.shard0001); + return Math.max(x[s.shard0.shardName], x[s.shard1.shardName]) - + Math.min(x[s.shard0.shardName], x[s.shard1.shardName]); } assert.lt(10, diff1()); diff --git a/jstests/sharding/sharding_balance4.js b/jstests/sharding/sharding_balance4.js index e5c6e1056b5..75a30b62b9a 100644 --- a/jstests/sharding/sharding_balance4.js +++ b/jstests/sharding/sharding_balance4.js @@ -146,7 +146,8 @@ if (Math.random() > .999) printjson(x); - return Math.max(x.shard0000, x.shard0001) - Math.min(x.shard0000, x.shard0001); + return Math.max(x[s.shard0.shardName], x[s.shard1.shardName]) - + Math.min(x[s.shard0.shardName], x[s.shard1.shardName]); } assert.lt(20, diff1(), "initial load"); diff --git a/jstests/sharding/sharding_migrate_cursor1.js b/jstests/sharding/sharding_migrate_cursor1.js index 71858ef833d..fe90a05ec46 100644 --- a/jstests/sharding/sharding_migrate_cursor1.js +++ b/jstests/sharding/sharding_migrate_cursor1.js @@ -15,7 +15,7 @@ s.adminCommand({enablesharding: "test"}); db = s.getDB("test"); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); t = db.foo; bigString = ""; diff --git a/jstests/sharding/sharding_system_namespaces.js b/jstests/sharding/sharding_system_namespaces.js index 851a1d06582..9d0886105dc 100644 --- a/jstests/sharding/sharding_system_namespaces.js +++ b/jstests/sharding/sharding_system_namespaces.js @@ -39,7 +39,7 @@ if (Array.contains(storageEngines, "wiredTiger")) { checkCollectionOptions(db); assert.commandWorked(db.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(db.adminCommand({shardCollection: coll + '', key: {x: 1}})); coll.insert({x: 0}); diff --git a/jstests/sharding/sort1.js b/jstests/sharding/sort1.js index 26491d46ded..dc423ac14d7 100644 --- a/jstests/sharding/sort1.js +++ b/jstests/sharding/sort1.js @@ -4,7 +4,7 @@ var s = new ShardingTest({name: "sort1", shards: 2, mongos: 2}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); s.adminCommand({shardcollection: "test.data", key: {'sub.num': 1}}); var db = s.getDB("test"); diff --git a/jstests/sharding/split_against_shard_with_invalid_split_points.js b/jstests/sharding/split_against_shard_with_invalid_split_points.js index 5add17c87a8..8817e524daf 100644 --- a/jstests/sharding/split_against_shard_with_invalid_split_points.js +++ b/jstests/sharding/split_against_shard_with_invalid_split_points.js @@ -28,8 +28,9 @@ }); }; - assert.commandFailedWithCode(callSplit(st.d0.getDB('admin'), {x: MinKey}, {x: 0}, [{x: 2}]), - ErrorCodes.InvalidOptions); + assert.commandFailedWithCode( + callSplit(st.rs0.getPrimary().getDB('admin'), {x: MinKey}, {x: 0}, [{x: 2}]), + ErrorCodes.InvalidOptions); var chunksAfter = st.s.getDB('config').chunks.find().toArray(); assert.eq(chunksBefore, diff --git a/jstests/sharding/ssv_config_check.js b/jstests/sharding/ssv_config_check.js index 969e915aaea..cba03476cb0 100644 --- a/jstests/sharding/ssv_config_check.js +++ b/jstests/sharding/ssv_config_check.js @@ -13,7 +13,7 @@ testDB.user.insert({x: 1}); - var directConn = new Mongo(st.d0.host); + var directConn = new Mongo(st.rs0.getPrimary().host); var adminDB = directConn.getDB('admin'); var configStr = adminDB.runCommand({getShardVersion: 'test.user'}).configServer; diff --git a/jstests/sharding/startup_with_all_configs_down.js b/jstests/sharding/startup_with_all_configs_down.js index cef9ec46327..72ff9238bfc 100644 --- a/jstests/sharding/startup_with_all_configs_down.js +++ b/jstests/sharding/startup_with_all_configs_down.js @@ -23,7 +23,8 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; MongoRunner.runMongod(shard); } - var st = new ShardingTest({shards: 2}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest({shards: 2, other: {shardAsReplicaSet: false}}); jsTestLog("Setting up initial data"); @@ -32,12 +33,12 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; } assert.commandWorked(st.s0.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); assert.commandWorked(st.s0.adminCommand({shardCollection: 'test.foo', key: {_id: 1}})); assert.commandWorked(st.s0.adminCommand({split: 'test.foo', find: {_id: 50}})); assert.commandWorked( - st.s0.adminCommand({moveChunk: 'test.foo', find: {_id: 75}, to: 'shard0001'})); + st.s0.adminCommand({moveChunk: 'test.foo', find: {_id: 75}, to: st.shard1.shardName})); // Make sure the pre-existing mongos already has the routing information loaded into memory assert.eq(100, st.s.getDB('test').foo.find().itcount()); diff --git a/jstests/sharding/stats.js b/jstests/sharding/stats.js index 3f3a1c75439..991bf3840d1 100644 --- a/jstests/sharding/stats.js +++ b/jstests/sharding/stats.js @@ -5,7 +5,7 @@ s.adminCommand({enablesharding: "test"}); db = s.getDB("test"); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); function numKeys(o) { var num = 0; @@ -52,14 +52,22 @@ assert.eq(db.foo.count(), x.count, "coll total count match"); assert.eq(2, x.nchunks, "coll chunk num"); assert.eq(2, numKeys(x.shards), "coll shard num"); - assert.eq(N / 2, x.shards.shard0000.count, "coll count on shard0000 expected"); - assert.eq(N / 2, x.shards.shard0001.count, "coll count on shard0001 expected"); - assert.eq(a.foo.count(), x.shards.shard0000.count, "coll count on shard0000 match"); - assert.eq(b.foo.count(), x.shards.shard0001.count, "coll count on shard0001 match"); - assert(!x.shards.shard0000.indexDetails, - 'indexDetails should not be present in shard0000: ' + tojson(x.shards.shard0000)); - assert(!x.shards.shard0001.indexDetails, - 'indexDetails should not be present in shard0001: ' + tojson(x.shards.shard0001)); + assert.eq( + N / 2, x.shards[s.shard0.shardName].count, "coll count on s.shard0.shardName expected"); + assert.eq( + N / 2, x.shards[s.shard1.shardName].count, "coll count on s.shard1.shardName expected"); + assert.eq(a.foo.count(), + x.shards[s.shard0.shardName].count, + "coll count on s.shard0.shardName match"); + assert.eq(b.foo.count(), + x.shards[s.shard1.shardName].count, + "coll count on s.shard1.shardName match"); + assert(!x.shards[s.shard0.shardName].indexDetails, + 'indexDetails should not be present in s.shard0.shardName: ' + + tojson(x.shards[s.shard0.shardName])); + assert(!x.shards[s.shard1.shardName].indexDetails, + 'indexDetails should not be present in s.shard1.shardName: ' + + tojson(x.shards[s.shard1.shardName])); a_extras = a.stats().objects - a.foo.count(); // things like system.namespaces and system.indexes @@ -72,10 +80,16 @@ assert.eq(N + (a_extras + b_extras), x.objects, "db total count expected"); assert.eq(2, numKeys(x.raw), "db shard num"); - assert.eq((N / 2) + a_extras, x.raw[s.shard0.name].objects, "db count on shard0000 expected"); - assert.eq((N / 2) + b_extras, x.raw[s.shard1.name].objects, "db count on shard0001 expected"); - assert.eq(a.stats().objects, x.raw[s.shard0.name].objects, "db count on shard0000 match"); - assert.eq(b.stats().objects, x.raw[s.shard1.name].objects, "db count on shard0001 match"); + assert.eq((N / 2) + a_extras, + x.raw[s.shard0.name].objects, + "db count on s.shard0.shardName expected"); + assert.eq((N / 2) + b_extras, + x.raw[s.shard1.name].objects, + "db count on s.shard1.shardName expected"); + assert.eq( + a.stats().objects, x.raw[s.shard0.name].objects, "db count on s.shard0.shardName match"); + assert.eq( + b.stats().objects, x.raw[s.shard1.name].objects, "db count on s.shard1.shardName match"); /* Test db.stat() and db.collection.stat() scaling */ diff --git a/jstests/sharding/tag_auto_split.js b/jstests/sharding/tag_auto_split.js index ddee6706544..ac80c057d85 100644 --- a/jstests/sharding/tag_auto_split.js +++ b/jstests/sharding/tag_auto_split.js @@ -5,13 +5,13 @@ var s = new ShardingTest({shards: 2, mongos: 1}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: "test.foo", key: {_id: 1}})); assert.eq(1, s.config.chunks.find({"ns": "test.foo"}).itcount()); - s.addShardTag("shard0000", "a"); - s.addShardTag("shard0000", "b"); + s.addShardTag(s.shard0.shardName, "a"); + s.addShardTag(s.shard0.shardName, "b"); s.addTagRange("test.foo", {_id: 5}, {_id: 10}, "a"); s.addTagRange("test.foo", {_id: 10}, {_id: 15}, "b"); diff --git a/jstests/sharding/tag_auto_split_partial_key.js b/jstests/sharding/tag_auto_split_partial_key.js index 51ddd69cc78..35f1c6c7b65 100644 --- a/jstests/sharding/tag_auto_split_partial_key.js +++ b/jstests/sharding/tag_auto_split_partial_key.js @@ -5,13 +5,13 @@ var s = new ShardingTest({shards: 2, mongos: 1}); assert.commandWorked(s.s0.adminCommand({enablesharding: "test"})); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); assert.commandWorked(s.s0.adminCommand({shardcollection: "test.foo", key: {_id: 1, a: 1}})); assert.eq(1, s.config.chunks.find({"ns": "test.foo"}).itcount()); - s.addShardTag("shard0000", "a"); - s.addShardTag("shard0000", "b"); + s.addShardTag(s.shard0.shardName, "a"); + s.addShardTag(s.shard0.shardName, "b"); s.addTagRange("test.foo", {_id: 5}, {_id: 10}, "a"); s.addTagRange("test.foo", {_id: 10}, {_id: 15}, "b"); diff --git a/jstests/sharding/tag_range.js b/jstests/sharding/tag_range.js index fba599e896b..3cb99e6ab9f 100644 --- a/jstests/sharding/tag_range.js +++ b/jstests/sharding/tag_range.js @@ -5,7 +5,7 @@ const st = new ShardingTest({shards: 2, mongos: 1}); assert.commandWorked(st.s0.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(st.s0.adminCommand({shardCollection: 'test.tag_range', key: {_id: 1}})); function countTags(num, message) { @@ -14,9 +14,9 @@ assert.eq(1, st.config.chunks.count({"ns": "test.tag_range"})); - st.addShardTag('shard0000', 'a'); - st.addShardTag('shard0000', 'b'); - st.addShardTag('shard0000', 'c'); + st.addShardTag(st.shard0.shardName, 'a'); + st.addShardTag(st.shard0.shardName, 'b'); + st.addShardTag(st.shard0.shardName, 'c'); // add two ranges, verify the additions diff --git a/jstests/sharding/time_zone_info_mongos.js b/jstests/sharding/time_zone_info_mongos.js index 510ab82874e..5ed4dd9866b 100644 --- a/jstests/sharding/time_zone_info_mongos.js +++ b/jstests/sharding/time_zone_info_mongos.js @@ -30,7 +30,7 @@ assert.eq(conn, null, "expected launching mongos with bad timezone rules to fail"); assert.neq(-1, rawMongoProgramOutput().indexOf("Failed global initialization")); - // Enable sharding on the test DB and ensure its primary is shard0000. + // Enable sharding on the test DB and ensure its primary is st.shard0.shardName. assert.commandWorked(mongosDB.adminCommand({enableSharding: mongosDB.getName()})); st.ensurePrimaryShard(mongosDB.getName(), st.rs0.getURL()); @@ -42,7 +42,7 @@ assert.commandWorked( mongosDB.adminCommand({split: mongosColl.getFullName(), middle: {_id: 0}})); - // Move the [0, MaxKey) chunk to shard0001. + // Move the [0, MaxKey) chunk to st.shard1.shardName. assert.commandWorked(mongosDB.adminCommand( {moveChunk: mongosColl.getFullName(), find: {_id: 1}, to: st.rs1.getURL()})); diff --git a/jstests/sharding/top_chunk_autosplit.js b/jstests/sharding/top_chunk_autosplit.js index f3f7486d098..560bc21d071 100644 --- a/jstests/sharding/top_chunk_autosplit.js +++ b/jstests/sharding/top_chunk_autosplit.js @@ -126,6 +126,16 @@ var highChunkInserts = {value: 1000, inc: 1}; var lowChunk = 1; var highChunk = -1; +// Main +var dbName = "TopChunkDB"; +var collName = "coll"; + +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'); + // Test objects: // name - name of test // lowOrHigh - 1 for low top chunk, -1 for high top chunk @@ -146,12 +156,12 @@ var tests = [ // Test auto-split on the "low" top chunk to another tagged shard name: "low top chunk with tag move", lowOrHigh: lowChunk, - movedToShard: "shard0002", + movedToShard: st.rs2.name, shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 20, tags: ["NYC"]}, - {name: "shard0001", range: midChunkRange1, chunks: 20, tags: ["SF"]}, - {name: "shard0002", range: highChunkRange, chunks: 5, tags: ["NYC"]}, - {name: "shard0003", range: midChunkRange2, chunks: 1, tags: ["SF"]}, + {name: st.rs0.name, range: lowChunkRange, chunks: 20, tags: ["NYC"]}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20, tags: ["SF"]}, + {name: st.rs2.name, range: highChunkRange, chunks: 5, tags: ["NYC"]}, + {name: st.rs3.name, range: midChunkRange2, chunks: 1, tags: ["SF"]}, ], tagRanges: [ {range: lowChunkTagRange, tag: "NYC"}, @@ -165,12 +175,12 @@ var tests = [ // Test auto-split on the "low" top chunk to same tagged shard name: "low top chunk with tag no move", lowOrHigh: lowChunk, - movedToShard: "shard0000", + movedToShard: st.rs0.name, shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 5, tags: ["NYC"]}, - {name: "shard0001", range: midChunkRange1, chunks: 20, tags: ["SF"]}, - {name: "shard0002", range: highChunkRange, chunks: 20, tags: ["NYC"]}, - {name: "shard0003", range: midChunkRange2, chunks: 1, tags: ["SF"]}, + {name: st.rs0.name, range: lowChunkRange, chunks: 5, tags: ["NYC"]}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20, tags: ["SF"]}, + {name: st.rs2.name, range: highChunkRange, chunks: 20, tags: ["NYC"]}, + {name: st.rs3.name, range: midChunkRange2, chunks: 1, tags: ["SF"]}, ], tagRanges: [ {range: lowChunkTagRange, tag: "NYC"}, @@ -184,12 +194,12 @@ var tests = [ // Test auto-split on the "low" top chunk to another shard name: "low top chunk no tag move", lowOrHigh: lowChunk, - movedToShard: "shard0003", + movedToShard: st.rs3.name, shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 20}, - {name: "shard0001", range: midChunkRange1, chunks: 20}, - {name: "shard0002", range: highChunkRange, chunks: 5}, - {name: "shard0003", range: midChunkRange2, chunks: 1} + {name: st.rs0.name, range: lowChunkRange, chunks: 20}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20}, + {name: st.rs2.name, range: highChunkRange, chunks: 5}, + {name: st.rs3.name, range: midChunkRange2, chunks: 1} ], inserts: lowChunkInserts }, @@ -197,12 +207,12 @@ var tests = [ // Test auto-split on the "high" top chunk to another tagged shard name: "high top chunk with tag move", lowOrHigh: highChunk, - movedToShard: "shard0000", + movedToShard: st.rs0.name, shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 5, tags: ["NYC"]}, - {name: "shard0001", range: midChunkRange1, chunks: 20, tags: ["SF"]}, - {name: "shard0002", range: highChunkRange, chunks: 20, tags: ["NYC"]}, - {name: "shard0003", range: midChunkRange2, chunks: 1, tags: ["SF"]} + {name: st.rs0.name, range: lowChunkRange, chunks: 5, tags: ["NYC"]}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20, tags: ["SF"]}, + {name: st.rs2.name, range: highChunkRange, chunks: 20, tags: ["NYC"]}, + {name: st.rs3.name, range: midChunkRange2, chunks: 1, tags: ["SF"]} ], tagRanges: [ {range: lowChunkTagRange, tag: "NYC"}, @@ -216,12 +226,12 @@ var tests = [ // Test auto-split on the "high" top chunk to another shard name: "high top chunk no tag move", lowOrHigh: highChunk, - movedToShard: "shard0003", + movedToShard: st.rs3.name, shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 5}, - {name: "shard0001", range: midChunkRange1, chunks: 20}, - {name: "shard0002", range: highChunkRange, chunks: 20}, - {name: "shard0003", range: midChunkRange2, chunks: 1} + {name: st.rs0.name, range: lowChunkRange, chunks: 5}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20}, + {name: st.rs2.name, range: highChunkRange, chunks: 20}, + {name: st.rs3.name, range: midChunkRange2, chunks: 1} ], inserts: highChunkInserts }, @@ -229,12 +239,12 @@ var tests = [ // Test auto-split on the "high" top chunk to same tagged shard name: "high top chunk with tag no move", lowOrHigh: highChunk, - movedToShard: "shard0002", + movedToShard: st.rs2.name, shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 20, tags: ["NYC"]}, - {name: "shard0001", range: midChunkRange1, chunks: 20, tags: ["SF"]}, - {name: "shard0002", range: highChunkRange, chunks: 5, tags: ["NYC"]}, - {name: "shard0003", range: midChunkRange2, chunks: 1, tags: ["SF"]} + {name: st.rs0.name, range: lowChunkRange, chunks: 20, tags: ["NYC"]}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20, tags: ["SF"]}, + {name: st.rs2.name, range: highChunkRange, chunks: 5, tags: ["NYC"]}, + {name: st.rs3.name, range: midChunkRange2, chunks: 1, tags: ["SF"]} ], tagRanges: [ {range: lowChunkTagRange, tag: "NYC"}, @@ -248,73 +258,19 @@ var tests = [ // Test auto-split on the "high" top chunk to same shard name: "high top chunk no tag no move", lowOrHigh: highChunk, - movedToShard: "shard0002", - shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 20}, - {name: "shard0001", range: midChunkRange1, chunks: 20}, - {name: "shard0002", range: highChunkRange, chunks: 1}, - {name: "shard0003", range: midChunkRange2, chunks: 5} - ], - inserts: highChunkInserts - }, -]; - -var singleNodeTests = [ - { - // Test auto-split on the "low" top chunk on single node shard - name: "single node shard - low top chunk", - lowOrHigh: lowChunk, - movedToShard: "shard0000", - shards: [{name: "shard0000", range: lowChunkRange, chunks: 2}], - inserts: lowChunkInserts - }, - { - // Test auto-split on the "high" top chunk on single node shard - name: "single node shard - high top chunk", - lowOrHigh: highChunk, - movedToShard: "shard0000", - shards: [{name: "shard0000", range: highChunkRange, chunks: 2}], - inserts: highChunkInserts - }, -]; - -var maxSizeTests = [ - { - // Test auto-split on the "low" top chunk with maxSize on destination shard - name: "maxSize - low top chunk", - lowOrHigh: lowChunk, - movedToShard: "shard0000", - shards: [ - {name: "shard0000", range: lowChunkRange, chunks: 10}, - {name: "shard0001", range: highChunkRange, chunks: 1} - ], - inserts: lowChunkInserts - }, - { - // Test auto-split on the "high" top chunk with maxSize on destination shard - name: "maxSize - high top chunk", - lowOrHigh: highChunk, - movedToShard: "shard0000", + movedToShard: st.rs2.name, shards: [ - {name: "shard0000", range: highChunkRange, chunks: 10}, - {name: "shard0001", range: lowChunkRange, chunks: 1} + {name: st.rs0.name, range: lowChunkRange, chunks: 20}, + {name: st.rs1.name, range: midChunkRange1, chunks: 20}, + {name: st.rs2.name, range: highChunkRange, chunks: 1}, + {name: st.rs3.name, range: midChunkRange2, chunks: 5} ], inserts: highChunkInserts }, ]; -// Main -var dbName = "TopChunkDB"; -var collName = "coll"; - -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'); - assert.commandWorked(db.adminCommand({enableSharding: dbName})); -st.ensurePrimaryShard(dbName, 'shard0000'); +st.ensurePrimaryShard(dbName, st.rs0.name); // Execute all test objects for (var i = 0; i < tests.length; i++) { @@ -332,7 +288,26 @@ coll = db[collName]; configDB = st.s.getDB('config'); assert.commandWorked(db.adminCommand({enableSharding: dbName})); -st.ensurePrimaryShard(dbName, 'shard0000'); +st.ensurePrimaryShard(dbName, st.rs0.name); + +var singleNodeTests = [ + { + // Test auto-split on the "low" top chunk on single node shard + name: "single node shard - low top chunk", + lowOrHigh: lowChunk, + movedToShard: st.rs0.name, + shards: [{name: st.rs0.name, range: lowChunkRange, chunks: 2}], + inserts: lowChunkInserts + }, + { + // Test auto-split on the "high" top chunk on single node shard + name: "single node shard - high top chunk", + lowOrHigh: highChunk, + movedToShard: st.rs0.name, + shards: [{name: st.rs0.name, range: highChunkRange, chunks: 2}], + inserts: highChunkInserts + }, +]; // Execute all test objects for (var i = 0; i < singleNodeTests.length; i++) { @@ -355,16 +330,43 @@ db = st.getDB(dbName); coll = db[collName]; configDB = st.s.getDB('config'); -// maxSize on shard0000 - 5MB, on shard0001 - 1MB +var maxSizeTests = [ + { + // Test auto-split on the "low" top chunk with maxSize on destination shard + name: "maxSize - low top chunk", + lowOrHigh: lowChunk, + movedToShard: st.rs0.name, + shards: [ + {name: st.rs0.name, range: lowChunkRange, chunks: 10}, + {name: st.rs1.name, range: highChunkRange, chunks: 1} + ], + inserts: lowChunkInserts + }, + { + // Test auto-split on the "high" top chunk with maxSize on destination shard + name: "maxSize - high top chunk", + lowOrHigh: highChunk, + movedToShard: st.rs0.name, + shards: [ + {name: st.rs0.name, range: highChunkRange, chunks: 10}, + {name: st.rs1.name, range: lowChunkRange, chunks: 1} + ], + inserts: highChunkInserts + }, +]; + +// maxSize on st.rs0.name - 5MB, on st.rs1.name - 1MB assert.commandWorked(db.adminCommand({addshard: st.getConnNames()[0], maxSize: 5})); assert.commandWorked(db.adminCommand({addshard: st.getConnNames()[1], maxSize: 1})); // SERVER-17070 Auto split moves to shard node running WiredTiger, if exceeding maxSize var unsupported = ["wiredTiger", "rocksdb", "inMemory", "ephemeralForTest"]; -if (unsupported.indexOf(st.d0.adminCommand({serverStatus: 1}).storageEngine.name) == -1 && - unsupported.indexOf(st.d1.adminCommand({serverStatus: 1}).storageEngine.name) == -1) { +if (unsupported.indexOf(st.rs0.getPrimary().adminCommand({serverStatus: 1}).storageEngine.name) == + -1 && + unsupported.indexOf(st.rs1.getPrimary().adminCommand({serverStatus: 1}).storageEngine.name) == + -1) { assert.commandWorked(db.adminCommand({enableSharding: dbName})); - st.ensurePrimaryShard(dbName, 'shard0000'); + st.ensurePrimaryShard(dbName, st.rs0.name); // Execute all test objects for (var i = 0; i < maxSizeTests.length; i++) { diff --git a/jstests/sharding/top_chunk_split.js b/jstests/sharding/top_chunk_split.js index c792ed81df3..5aeeb14ddfd 100644 --- a/jstests/sharding/top_chunk_split.js +++ b/jstests/sharding/top_chunk_split.js @@ -18,7 +18,7 @@ var shardVersion = [res.version, res.versionEpoch]; return db.runCommand({ splitChunk: 'test.user', - from: 'shard0000', + from: st.shard0.shardName, min: minKey, max: maxKey, keyPattern: {x: 1}, @@ -137,7 +137,7 @@ } // run test - test(st.d0.getDB('admin')); + test(st.rs0.getPrimary().getDB('admin')); // teardown testDB.user.drop(); diff --git a/jstests/sharding/unowned_doc_filtering.js b/jstests/sharding/unowned_doc_filtering.js index 2c12ef4b0cf..54a9ad8ce27 100644 --- a/jstests/sharding/unowned_doc_filtering.js +++ b/jstests/sharding/unowned_doc_filtering.js @@ -6,6 +6,10 @@ * A restarted standalone will lose all data when using an ephemeral storage engine. * @tags: [requires_persistence] */ + +// This test shuts down shards. +TestData.skipCheckingUUIDsConsistentAcrossCluster = true; + (function() { "use strict"; @@ -14,7 +18,7 @@ var testDB = st.s.getDB('test'); assert.commandWorked(testDB.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0000'); + st.ensurePrimaryShard('test', st.shard0.shardName); assert.commandWorked(testDB.adminCommand({shardCollection: 'test.foo', key: {x: 1}})); var inserts = []; @@ -25,14 +29,14 @@ assert.commandWorked(testDB.adminCommand({split: 'test.foo', find: {x: 50}})); assert.commandWorked( - testDB.adminCommand({moveChunk: 'test.foo', find: {x: 100}, to: 'shard0001'})); + testDB.adminCommand({moveChunk: 'test.foo', find: {x: 100}, to: st.shard1.shardName})); // Insert some documents directly into the shards into chunks not owned by that shard. - st.d0.getDB('test').foo.insert({x: 100}); - st.d1.getDB('test').foo.insert({x: 0}); + st.rs0.getPrimary().getDB('test').foo.insert({x: 100}); + st.rs1.getPrimary().getDB('test').foo.insert({x: 0}); - st.restartMongod(0); - st.restartMongod(1); + st.rs0.restart(0); + st.rs1.restart(1); var fooCount; for (var retries = 0; retries <= 2; retries++) { diff --git a/jstests/sharding/update_immutable_fields.js b/jstests/sharding/update_immutable_fields.js index ba936808fdd..b2a422a98cb 100644 --- a/jstests/sharding/update_immutable_fields.js +++ b/jstests/sharding/update_immutable_fields.js @@ -10,7 +10,7 @@ var shard0 = st.shard0; assert.commandWorked(config.adminCommand({enableSharding: coll.getDB() + ""})); - st.ensurePrimaryShard(coll.getDB().getName(), 'shard0000'); + st.ensurePrimaryShard(coll.getDB().getName(), st.shard0.shardName); assert.commandWorked(config.adminCommand({shardCollection: "" + coll, key: {a: 1}})); var getDirectShardedConn = function(st, collName) { @@ -27,7 +27,7 @@ authoritative: true, configdb: configConnStr, version: maxChunk.lastmod, - shard: 'shard0000', + shard: st.shard0.shardName, versionEpoch: maxChunk.lastmodEpoch }; diff --git a/jstests/sharding/update_sharded.js b/jstests/sharding/update_sharded.js index 3b30d6936a9..d08d498c613 100644 --- a/jstests/sharding/update_sharded.js +++ b/jstests/sharding/update_sharded.js @@ -5,7 +5,7 @@ var s = new ShardingTest({name: "auto1", shards: 2, mongos: 1}); s.adminCommand({enablesharding: "test"}); - s.ensurePrimaryShard('test', 'shard0001'); + s.ensurePrimaryShard('test', s.shard1.shardName); // repeat same tests with hashed shard key, to ensure identical behavior s.adminCommand({shardcollection: "test.update0", key: {key: 1}}); diff --git a/jstests/sharding/upsert_sharded.js b/jstests/sharding/upsert_sharded.js index 9ee8f72d1bc..5d3dde7a5cd 100644 --- a/jstests/sharding/upsert_sharded.js +++ b/jstests/sharding/upsert_sharded.js @@ -12,7 +12,7 @@ var coll = mongos.getCollection("foo.bar"); assert(admin.runCommand({enableSharding: coll.getDB() + ""}).ok); - st.ensurePrimaryShard(coll.getDB().getName(), 'shard0001'); + st.ensurePrimaryShard(coll.getDB().getName(), st.shard1.shardName); var upsertedResult = function(query, expr) { coll.remove({}); diff --git a/jstests/sharding/user_flags_sharded.js b/jstests/sharding/user_flags_sharded.js index caf5280d185..d9c718315fc 100644 --- a/jstests/sharding/user_flags_sharded.js +++ b/jstests/sharding/user_flags_sharded.js @@ -47,7 +47,8 @@ // other shard to create the collection on that shard s.adminCommand({enablesharding: dbname}); s.adminCommand({shardcollection: ns, key: {_id: 1}}); - s.adminCommand({moveChunk: ns, find: {_id: 1}, to: "shard0000", _waitForDelete: true}); + s.adminCommand( + {moveChunk: ns, find: {_id: 1}, to: "s.shard0.shardName", _waitForDelete: true}); print("*************** Collection Stats On Other Shard ************"); var shard2 = s._connections[0].getDB(dbname); diff --git a/jstests/sharding/version1.js b/jstests/sharding/version1.js index 0df7ae3cb86..c8a361f72ed 100644 --- a/jstests/sharding/version1.js +++ b/jstests/sharding/version1.js @@ -39,7 +39,7 @@ configdb: s._configDB, version: new Timestamp(2, 0), authoritative: true, - shard: "shard0000", + shard: "s.shard0.shardName", shardHost: s.s.host }), "should have failed because version is config is 1|0"); @@ -51,7 +51,7 @@ version: new Timestamp(1, 0), versionEpoch: epoch, authoritative: true, - shard: "shard0000", + shard: s.shard0.shardName, shardHost: s.s.host }), "should have worked"); diff --git a/jstests/sharding/version2.js b/jstests/sharding/version2.js index d0719457cbe..89b919f7ce4 100644 --- a/jstests/sharding/version2.js +++ b/jstests/sharding/version2.js @@ -22,7 +22,7 @@ authoritative: true, version: new Timestamp(1, 0), versionEpoch: fooEpoch, - shard: "shard0000", + shard: s.shard0.shardName, shardHost: s.s.host, })); @@ -34,7 +34,7 @@ 1); // From a different client - var a2 = connect(`mongodb://${s._connections[0].name}/admin`); + var a2 = connect(`mongodb://${s.rs0.getPrimary().name}/admin`); assert.eq( a2.runCommand({"getShardVersion": "alleyinsider.foo", configdb: s._configDB}).global.t, @@ -54,7 +54,7 @@ configdb: s._configDB, version: new Timestamp(1, 0), versionEpoch: barEpoch, - shard: 'shard0000', + shard: s.shard0.shardName, authoritative: true }), "setShardVersion bar temp"); diff --git a/jstests/sharding/views.js b/jstests/sharding/views.js index 4f066eaf72e..27325338025 100644 --- a/jstests/sharding/views.js +++ b/jstests/sharding/views.js @@ -45,12 +45,12 @@ let coll = db.getCollection("coll"); assert.commandWorked(config.adminCommand({enableSharding: db.getName()})); - st.ensurePrimaryShard(db.getName(), "shard0000"); + st.ensurePrimaryShard(db.getName(), st.shard0.shardName); assert.commandWorked(config.adminCommand({shardCollection: coll.getFullName(), key: {a: 1}})); assert.commandWorked(mongos.adminCommand({split: coll.getFullName(), middle: {a: 6}})); assert.commandWorked( - db.adminCommand({moveChunk: coll.getFullName(), find: {a: 25}, to: "shard0001"})); + db.adminCommand({moveChunk: coll.getFullName(), find: {a: 25}, to: st.shard1.shardName})); for (let i = 0; i < 10; ++i) { assert.writeOK(coll.insert({a: i})); diff --git a/jstests/sharding/write_commands_sharding_state.js b/jstests/sharding/write_commands_sharding_state.js index bdc4c235f71..479a3c1f687 100644 --- a/jstests/sharding/write_commands_sharding_state.js +++ b/jstests/sharding/write_commands_sharding_state.js @@ -5,13 +5,15 @@ (function() { 'use strict'; - var st = new ShardingTest({name: "write_commands", mongos: 2, shards: 2}); + // TODO: SERVER-33444 remove shardAsReplicaSet: false + var st = new ShardingTest( + {name: "write_commands", mongos: 2, shards: 2, other: {shardAsReplicaSet: false}}); var dbTestName = 'WriteCommandsTestDB'; var collName = dbTestName + '.TestColl'; assert.commandWorked(st.s0.adminCommand({enablesharding: dbTestName})); - st.ensurePrimaryShard(dbTestName, 'shard0000'); + st.ensurePrimaryShard(dbTestName, st.shard0.shardName); assert.commandWorked( st.s0.adminCommand({shardCollection: collName, key: {Key: 1}, unique: true})); @@ -22,11 +24,11 @@ printjson(st.config.getSiblingDB('config').chunks.find().toArray()); - // Move 10 and 20 to shard00001 + // Move 10 and 20 to st.shard0.shardName1 assert.commandWorked(st.s0.adminCommand( - {moveChunk: collName, find: {Key: 19}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: collName, find: {Key: 19}, to: st.shard1.shardName, _waitForDelete: true})); assert.commandWorked(st.s0.adminCommand( - {moveChunk: collName, find: {Key: 21}, to: 'shard0001', _waitForDelete: true})); + {moveChunk: collName, find: {Key: 21}, to: st.shard1.shardName, _waitForDelete: true})); printjson(st.config.getSiblingDB('config').chunks.find().toArray()); @@ -46,9 +48,9 @@ assert.eq(1, st.d1.getDB(dbTestName).TestColl.find({Key: 11}).count()); assert.eq(1, st.d1.getDB(dbTestName).TestColl.find({Key: 21}).count()); - // Move chunk [0, 19] to shard0000 and make sure the documents are correctly placed + // Move chunk [0, 19] to st.shard0.shardName and make sure the documents are correctly placed assert.commandWorked(st.s0.adminCommand( - {moveChunk: collName, find: {Key: 19}, _waitForDelete: true, to: 'shard0000'})); + {moveChunk: collName, find: {Key: 19}, _waitForDelete: true, to: st.shard0.shardName})); printjson(st.config.getSiblingDB('config').chunks.find().toArray()); printjson(st.d0.getDB(dbTestName).TestColl.find({}).toArray()); @@ -61,7 +63,8 @@ // Now that both mongod shards are restarted, they don't know yet that they are part of a // sharded // cluster until they get a setShardVerion command. Mongos instance s1 has stale metadata and - // doesn't know that chunk with key 19 has moved to shard0000 so it will send it to shard0001 at + // doesn't know that chunk with key 19 has moved to st.shard0.shardName so it will send it to + // st.shard1.shardName at // first. // // Shard0001 would only send back a stale config exception if it receives a setShardVersion diff --git a/jstests/sharding/zero_shard_version.js b/jstests/sharding/zero_shard_version.js index 1037c1e7b75..1b29f50c459 100644 --- a/jstests/sharding/zero_shard_version.js +++ b/jstests/sharding/zero_shard_version.js @@ -9,7 +9,7 @@ var testDB_s0 = st.s.getDB('test'); assert.commandWorked(testDB_s0.adminCommand({enableSharding: 'test'})); - st.ensurePrimaryShard('test', 'shard0001'); + st.ensurePrimaryShard('test', st.shard1.shardName); assert.commandWorked(testDB_s0.adminCommand({shardCollection: 'test.user', key: {x: 1}})); var checkShardMajorVersion = function(conn, expectedVersion) { @@ -27,7 +27,7 @@ var testDB_s1 = st.s1.getDB('test'); assert.writeOK(testDB_s1.user.insert({x: 1})); assert.commandWorked( - testDB_s1.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: 'shard0000'})); + testDB_s1.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName})); st.configRS.awaitLastOpCommitted(); @@ -40,15 +40,15 @@ // shard1: 0|0|a // mongos0: 1|0|a - checkShardMajorVersion(st.d0, 0); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 0); + checkShardMajorVersion(st.rs1.getPrimary(), 0); - // mongos0 still thinks that { x: 1 } belong to shard0001, but should be able to + // mongos0 still thinks that { x: 1 } belong to st.shard1.shardName, but should be able to // refresh it's metadata correctly. assert.neq(null, testDB_s0.user.findOne({x: 1})); - checkShardMajorVersion(st.d0, 2); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 2); + checkShardMajorVersion(st.rs1.getPrimary(), 0); // Set mongos2 & mongos3 to version 2|0|a var testDB_s2 = st.s2.getDB('test'); @@ -68,15 +68,15 @@ // shard1: 0|0|0 // mongos0: 2|0|a - checkShardMajorVersion(st.d0, 0); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 0); + checkShardMajorVersion(st.rs1.getPrimary(), 0); - // mongos0 still thinks { x: 10 } belong to shard0000, but since coll is dropped, + // mongos0 still thinks { x: 10 } belong to st.shard0.shardName, but since coll is dropped, // query should be routed to primary shard. assert.neq(null, testDB_s0.user.findOne({x: 10})); - checkShardMajorVersion(st.d0, 0); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 0); + checkShardMajorVersion(st.rs1.getPrimary(), 0); /////////////////////////////////////////////////////// // Test 2 shards with 1 chunk @@ -92,7 +92,7 @@ testDB_s1.user.insert({x: 1}); testDB_s1.user.insert({x: -11}); assert.commandWorked( - testDB_s1.adminCommand({moveChunk: 'test.user', find: {x: -1}, to: 'shard0000'})); + testDB_s1.adminCommand({moveChunk: 'test.user', find: {x: -1}, to: st.shard0.shardName})); st.configRS.awaitLastOpCommitted(); @@ -106,21 +106,21 @@ // // mongos2: 2|0|a - checkShardMajorVersion(st.d0, 0); - checkShardMajorVersion(st.d1, 2); + checkShardMajorVersion(st.rs0.getPrimary(), 0); + checkShardMajorVersion(st.rs1.getPrimary(), 2); - // mongos2 still thinks that { x: 1 } belong to shard0000, but should be able to + // mongos2 still thinks that { x: 1 } belong to st.shard0.shardName, but should be able to // refresh it's metadata correctly. assert.neq(null, testDB_s2.user.findOne({x: 1})); - checkShardMajorVersion(st.d0, 2); - checkShardMajorVersion(st.d1, 2); + checkShardMajorVersion(st.rs0.getPrimary(), 2); + checkShardMajorVersion(st.rs1.getPrimary(), 2); // Set shard metadata to 2|0|b assert.neq(null, testDB_s2.user.findOne({x: -11})); - checkShardMajorVersion(st.d0, 2); - checkShardMajorVersion(st.d1, 2); + checkShardMajorVersion(st.rs0.getPrimary(), 2); + checkShardMajorVersion(st.rs1.getPrimary(), 2); // Official config: // shard0: 2|0|b, [-inf, 0) @@ -132,7 +132,7 @@ // // mongos3: 2|0|a - // 4th mongos still thinks that { x: 1 } belong to shard0000, but should be able to + // 4th mongos still thinks that { x: 1 } belong to st.shard0.shardName, but should be able to // refresh it's metadata correctly. assert.neq(null, testDB_s3.user.findOne({x: 1})); @@ -143,8 +143,8 @@ // Set mongos0 to version 0|0|0 testDB_s0.user.drop(); - checkShardMajorVersion(st.d0, 0); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 0); + checkShardMajorVersion(st.rs1.getPrimary(), 0); assert.eq(null, testDB_s0.user.findOne({x: 1})); @@ -155,7 +155,7 @@ testDB_s1.user.insert({x: 1}); assert.commandWorked( - testDB_s1.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: 'shard0000'})); + testDB_s1.adminCommand({moveChunk: 'test.user', find: {x: 0}, to: st.shard0.shardName})); st.configRS.awaitLastOpCommitted(); @@ -169,14 +169,14 @@ // // mongos0: 0|0|0 - checkShardMajorVersion(st.d0, 0); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 0); + checkShardMajorVersion(st.rs1.getPrimary(), 0); // 1st mongos thinks that collection is unshareded and will attempt to query primary shard. assert.neq(null, testDB_s0.user.findOne({x: 1})); - checkShardMajorVersion(st.d0, 2); - checkShardMajorVersion(st.d1, 0); + checkShardMajorVersion(st.rs0.getPrimary(), 2); + checkShardMajorVersion(st.rs1.getPrimary(), 0); st.stop(); |