diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-02-10 12:12:06 -0500 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2016-02-17 14:50:41 -0500 |
commit | ffe9971c736ded4f9d797eb2152ef27ec98c8a70 (patch) | |
tree | 568e141a4f28ba77420527cca21530e7f4ed5831 /jstests/sharding | |
parent | bfe0a9ad30e1c5c6d0f62526a164388eb802db8a (diff) | |
download | mongo-ffe9971c736ded4f9d797eb2152ef27ec98c8a70.tar.gz |
SERVER-22553 mongos_shard_failure_tolerance.js should not rely on order of shard ids
Diffstat (limited to 'jstests/sharding')
-rw-r--r-- | jstests/sharding/mongos_shard_failure_tolerance.js | 146 |
1 files changed, 72 insertions, 74 deletions
diff --git a/jstests/sharding/mongos_shard_failure_tolerance.js b/jstests/sharding/mongos_shard_failure_tolerance.js index d28ca32f6bd..9b26bbd7eb8 100644 --- a/jstests/sharding/mongos_shard_failure_tolerance.js +++ b/jstests/sharding/mongos_shard_failure_tolerance.js @@ -10,34 +10,31 @@ // sequence), idle (connection is connected but not used before a shard change), and new // (connection connected after shard change). // +(function() { +'use strict'; -var st = new ShardingTest({shards : 3, mongos : 1}); -st.stopBalancer(); +var st = new ShardingTest({ shards: 3, mongos: 1 }); -var mongos = st.s0; -var admin = mongos.getDB( "admin" ); -var shards = mongos.getDB( "config" ).shards.find().toArray(); +var admin = st.s0.getDB("admin"); -assert.commandWorked( admin.runCommand({ setParameter : 1, traceExceptions : true }) ); +var collSharded = st.s0.getCollection("fooSharded.barSharded"); +var collUnsharded = st.s0.getCollection("fooUnsharded.barUnsharded"); -var collSharded = mongos.getCollection( "fooSharded.barSharded" ); -var collUnsharded = mongos.getCollection( "fooUnsharded.barUnsharded" ); +assert.commandWorked(admin.runCommand({ enableSharding: collSharded.getDB().toString() })); +st.ensurePrimaryShard(collSharded.getDB().toString(), st.shard0.shardName); -assert.commandWorked( admin.runCommand({ enableSharding : collSharded.getDB().toString() }) ); -printjson( admin.runCommand({ movePrimary : collSharded.getDB().toString(), to : shards[0]._id }) ); -assert.commandWorked( admin.runCommand({ shardCollection : collSharded.toString(), - key : { _id : 1 } }) ); -assert.commandWorked( admin.runCommand({ split : collSharded.toString(), middle : { _id : 0 } }) ); -assert.commandWorked( admin.runCommand({ moveChunk : collSharded.toString(), - find : { _id : 0 }, - to : shards[1]._id }) ); +assert.commandWorked(admin.runCommand({ shardCollection: collSharded.toString(), + key: { _id: 1 } })); +assert.commandWorked(admin.runCommand({ split: collSharded.toString(), middle: { _id: 0 } })); +assert.commandWorked(admin.runCommand({ moveChunk: collSharded.toString(), + find: { _id: 0 }, + to: st.shard1.shardName })); // Create the unsharded database -assert.writeOK(collUnsharded.insert({ some : "doc" })); +assert.writeOK(collUnsharded.insert({ some: "doc" })); assert.writeOK(collUnsharded.remove({})); -printjson( admin.runCommand({ movePrimary : collUnsharded.getDB().toString(), to : shards[0]._id }) ); - -st.printShardingStatus(); +assert.commandWorked( + admin.runCommand({ movePrimary: collUnsharded.getDB().toString(), to: st.shard0.shardName })); // // Setup is complete @@ -45,99 +42,100 @@ st.printShardingStatus(); jsTest.log("Inserting initial data..."); -var mongosConnActive = new Mongo( mongos.host ); +var mongosConnActive = new Mongo(st.s0.host); var mongosConnIdle = null; var mongosConnNew = null; -assert.writeOK(mongosConnActive.getCollection( collSharded.toString() ).insert({ _id : -1 })); -assert.writeOK(mongosConnActive.getCollection( collSharded.toString() ).insert({ _id : 1 })); -assert.writeOK(mongosConnActive.getCollection( collUnsharded.toString() ).insert({ _id : 1 })); +assert.writeOK(mongosConnActive.getCollection(collSharded.toString()).insert({ _id: -1 })); +assert.writeOK(mongosConnActive.getCollection(collSharded.toString()).insert({ _id: 1 })); +assert.writeOK(mongosConnActive.getCollection(collUnsharded.toString()).insert({ _id: 1 })); jsTest.log("Stopping third shard..."); -mongosConnIdle = new Mongo( mongos.host ); +mongosConnIdle = new Mongo(st.s0.host); -MongoRunner.stopMongod( st.shard2 ); +MongoRunner.stopMongod(st.shard2); jsTest.log("Testing active connection..."); -assert.neq(null, mongosConnActive.getCollection( collSharded.toString() ).findOne({ _id : -1 })); -assert.neq(null, mongosConnActive.getCollection( collSharded.toString() ).findOne({ _id : 1 })); -assert.neq(null, mongosConnActive.getCollection( collUnsharded.toString() ).findOne({ _id : 1 })); +assert.neq(null, mongosConnActive.getCollection(collSharded.toString()).findOne({ _id: -1 })); +assert.neq(null, mongosConnActive.getCollection(collSharded.toString()).findOne({ _id: 1 })); +assert.neq(null, mongosConnActive.getCollection(collUnsharded.toString()).findOne({ _id: 1 })); -assert.writeOK(mongosConnActive.getCollection( collSharded.toString() ).insert({ _id : -2 })); -assert.writeOK(mongosConnActive.getCollection( collSharded.toString() ).insert({ _id : 2 })); -assert.writeOK(mongosConnActive.getCollection( collUnsharded.toString() ).insert({ _id : 2 })); +assert.writeOK(mongosConnActive.getCollection(collSharded.toString()).insert({ _id: -2 })); +assert.writeOK(mongosConnActive.getCollection(collSharded.toString()).insert({ _id: 2 })); +assert.writeOK(mongosConnActive.getCollection(collUnsharded.toString()).insert({ _id: 2 })); jsTest.log("Testing idle connection..."); -assert.writeOK(mongosConnIdle.getCollection( collSharded.toString() ).insert({ _id : -3 })); -assert.writeOK(mongosConnIdle.getCollection( collSharded.toString() ).insert({ _id : 3 })); -assert.writeOK(mongosConnIdle.getCollection( collUnsharded.toString() ).insert({ _id : 3 })); +assert.writeOK(mongosConnIdle.getCollection(collSharded.toString()).insert({ _id: -3 })); +assert.writeOK(mongosConnIdle.getCollection(collSharded.toString()).insert({ _id: 3 })); +assert.writeOK(mongosConnIdle.getCollection(collUnsharded.toString()).insert({ _id: 3 })); -assert.neq(null, mongosConnIdle.getCollection( collSharded.toString() ).findOne({ _id : -1 }) ); -assert.neq(null, mongosConnIdle.getCollection( collSharded.toString() ).findOne({ _id : 1 }) ); -assert.neq(null, mongosConnIdle.getCollection( collUnsharded.toString() ).findOne({ _id : 1 }) ); +assert.neq(null, mongosConnIdle.getCollection(collSharded.toString()).findOne({ _id: -1 })); +assert.neq(null, mongosConnIdle.getCollection(collSharded.toString()).findOne({ _id: 1 })); +assert.neq(null, mongosConnIdle.getCollection(collUnsharded.toString()).findOne({ _id: 1 })); jsTest.log("Testing new connections..."); -mongosConnNew = new Mongo( mongos.host ); -assert.neq(null, mongosConnNew.getCollection( collSharded.toString() ).findOne({ _id : -1 }) ); -mongosConnNew = new Mongo( mongos.host ); -assert.neq(null, mongosConnNew.getCollection( collSharded.toString() ).findOne({ _id : 1 }) ); -mongosConnNew = new Mongo( mongos.host ); -assert.neq(null, mongosConnNew.getCollection( collUnsharded.toString() ).findOne({ _id : 1 }) ); +mongosConnNew = new Mongo(st.s0.host); +assert.neq(null, mongosConnNew.getCollection(collSharded.toString()).findOne({ _id: -1 })); +mongosConnNew = new Mongo(st.s0.host); +assert.neq(null, mongosConnNew.getCollection(collSharded.toString()).findOne({ _id: 1 })); +mongosConnNew = new Mongo(st.s0.host); +assert.neq(null, mongosConnNew.getCollection(collUnsharded.toString()).findOne({ _id: 1 })); -mongosConnNew = new Mongo( mongos.host ); -assert.writeOK(mongosConnNew.getCollection( collSharded.toString() ).insert({ _id : -4 })); -mongosConnNew = new Mongo( mongos.host ); -assert.writeOK(mongosConnNew.getCollection( collSharded.toString() ).insert({ _id : 4 })); -mongosConnNew = new Mongo( mongos.host ); -assert.writeOK(mongosConnNew.getCollection( collUnsharded.toString() ).insert({ _id : 4 })); +mongosConnNew = new Mongo(st.s0.host); +assert.writeOK(mongosConnNew.getCollection(collSharded.toString()).insert({ _id: -4 })); +mongosConnNew = new Mongo(st.s0.host); +assert.writeOK(mongosConnNew.getCollection(collSharded.toString()).insert({ _id: 4 })); +mongosConnNew = new Mongo(st.s0.host); +assert.writeOK(mongosConnNew.getCollection(collUnsharded.toString()).insert({ _id: 4 })); gc(); // Clean up new connections jsTest.log("Stopping second shard..."); -mongosConnIdle = new Mongo( mongos.host ); +mongosConnIdle = new Mongo(st.s0.host); -MongoRunner.stopMongod( st.shard1 ); +MongoRunner.stopMongod(st.shard1); jsTest.log("Testing active connection..."); -assert.neq(null, mongosConnActive.getCollection( collSharded.toString() ).findOne({ _id : -1 }) ); -assert.neq(null, mongosConnActive.getCollection( collUnsharded.toString() ).findOne({ _id : 1 }) ); +assert.neq(null, mongosConnActive.getCollection(collSharded.toString()).findOne({ _id: -1 })); +assert.neq(null, mongosConnActive.getCollection(collUnsharded.toString()).findOne({ _id: 1 })); -assert.writeOK(mongosConnActive.getCollection( collSharded.toString() ).insert({ _id : -5 })); +assert.writeOK(mongosConnActive.getCollection(collSharded.toString()).insert({ _id: -5 })); -assert.writeError(mongosConnActive.getCollection( collSharded.toString() ).insert({ _id : 5 })); -assert.writeOK(mongosConnActive.getCollection( collUnsharded.toString() ).insert({ _id : 5 })); +assert.writeError(mongosConnActive.getCollection(collSharded.toString()).insert({ _id: 5 })); +assert.writeOK(mongosConnActive.getCollection(collUnsharded.toString()).insert({ _id: 5 })); jsTest.log("Testing idle connection..."); -assert.writeOK(mongosConnIdle.getCollection( collSharded.toString() ).insert({ _id : -6 })); -assert.writeError(mongosConnIdle.getCollection( collSharded.toString() ).insert({ _id : 6 })); -assert.writeOK(mongosConnIdle.getCollection( collUnsharded.toString() ).insert({ _id : 6 })); +assert.writeOK(mongosConnIdle.getCollection(collSharded.toString()).insert({ _id: -6 })); +assert.writeError(mongosConnIdle.getCollection(collSharded.toString()).insert({ _id: 6 })); +assert.writeOK(mongosConnIdle.getCollection(collUnsharded.toString()).insert({ _id: 6 })); -assert.neq(null, mongosConnIdle.getCollection( collSharded.toString() ).findOne({ _id : -1 }) ); -assert.neq(null, mongosConnIdle.getCollection( collUnsharded.toString() ).findOne({ _id : 1 }) ); +assert.neq(null, mongosConnIdle.getCollection(collSharded.toString()).findOne({ _id: -1 })); +assert.neq(null, mongosConnIdle.getCollection(collUnsharded.toString()).findOne({ _id: 1 })); jsTest.log("Testing new connections..."); -mongosConnNew = new Mongo( mongos.host ); -assert.neq(null, mongosConnNew.getCollection( collSharded.toString() ).findOne({ _id : -1 }) ); -mongosConnNew = new Mongo( mongos.host ); -assert.neq(null, mongosConnNew.getCollection( collUnsharded.toString() ).findOne({ _id : 1 }) ); +mongosConnNew = new Mongo(st.s0.host); +assert.neq(null, mongosConnNew.getCollection(collSharded.toString()).findOne({ _id: -1 })); -mongosConnNew = new Mongo( mongos.host ); -assert.writeOK(mongosConnNew.getCollection( collSharded.toString() ).insert({ _id : -7 })); -mongosConnNew = new Mongo( mongos.host ); -assert.writeError(mongosConnNew.getCollection( collSharded.toString() ).insert({ _id : 7 })); -mongosConnNew = new Mongo( mongos.host ); -assert.writeOK(mongosConnNew.getCollection( collUnsharded.toString() ).insert({ _id : 7 })); +mongosConnNew = new Mongo(st.s0.host); +assert.neq(null, mongosConnNew.getCollection(collUnsharded.toString()).findOne({ _id: 1 })); -gc(); // Clean up new connections +mongosConnNew = new Mongo(st.s0.host); +assert.writeOK(mongosConnNew.getCollection(collSharded.toString()).insert({ _id: -7 })); + +mongosConnNew = new Mongo(st.s0.host); +assert.writeError(mongosConnNew.getCollection(collSharded.toString()).insert({ _id: 7 })); + +mongosConnNew = new Mongo(st.s0.host); +assert.writeOK(mongosConnNew.getCollection(collUnsharded.toString()).insert({ _id: 7 })); -jsTest.log("DONE!"); st.stop(); +})(); |