summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2011-11-20 03:13:32 -0500
committerEliot Horowitz <eliot@10gen.com>2011-11-21 01:01:49 -0500
commit415486ce5cdc82ab1f8b2f8db92a197535e31d61 (patch)
tree08bca3814faf809d52587a761506e5b3ad9cb145
parentf48ecaa2c6deceff2df9b8b0d7d266d9ae5b3aef (diff)
downloadmongo-415486ce5cdc82ab1f8b2f8db92a197535e31d61.tar.gz
test for SERVER-4324
-rw-r--r--jstests/slowNightly/replica_set_shard_version.js51
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()