diff options
author | Eliot Horowitz <eliot@10gen.com> | 2011-11-20 03:13:32 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2011-11-21 01:01:49 -0500 |
commit | 415486ce5cdc82ab1f8b2f8db92a197535e31d61 (patch) | |
tree | 08bca3814faf809d52587a761506e5b3ad9cb145 | |
parent | f48ecaa2c6deceff2df9b8b0d7d266d9ae5b3aef (diff) | |
download | mongo-415486ce5cdc82ab1f8b2f8db92a197535e31d61.tar.gz |
test for SERVER-4324
-rw-r--r-- | jstests/slowNightly/replica_set_shard_version.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/jstests/slowNightly/replica_set_shard_version.js b/jstests/slowNightly/replica_set_shard_version.js new file mode 100644 index 00000000000..7b155550f25 --- /dev/null +++ b/jstests/slowNightly/replica_set_shard_version.js @@ -0,0 +1,51 @@ +// Tests whether a Replica Set in a mongos cluster can cause versioning problems + +jsTestLog( "Starting sharded cluster..." ) + +var st = new ShardingTest( { shards : 1, mongos : 2, other : { rs : true } } ) + +var mongosA = st.s0 +var mongosB = st.s1 +var shard = st.shard0 + +var sadmin = shard.getDB( "admin" ) +sadmin.runCommand({ replSetStepDown : 3000, force : true }) + +assert.soon( + function(){ + var res = sadmin.runCommand( "replSetGetStatus" ); + for ( var i=0; i<res.members.length; i++ ) { + if ( res.members[i].state == 1 ) + return true; + } + return false; + } +); + +coll = mongosA.getCollection( jsTestName() + ".coll" ); + +start = new Date(); + +iteratioons = 0; + +assert.soon( + function(z){ + iteratioons++; + try { + coll.findOne(); + return true; + } + catch ( e ){ + return false; + } + } ); + +printjson( coll.findOne() ) + +end = new Date(); + +print( "time to work: " + ( ( end.getTime() - start.getTime() ) / 1000 ) + " seconds" ); + +assert.gt( 3 , iteratioons ); + +st.stop() |