diff options
Diffstat (limited to 'jstests/sharding/features3.js')
-rw-r--r-- | jstests/sharding/features3.js | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/jstests/sharding/features3.js b/jstests/sharding/features3.js index a2a8197..b15ccd3 100644 --- a/jstests/sharding/features3.js +++ b/jstests/sharding/features3.js @@ -24,10 +24,14 @@ assert.eq( N / 2 , x.shards.shard0001.count , "count on shard0001" ) start = new Date() -join = startParallelShell( "db.foo.find( function(){ x = \"\"; for ( i=0; i<5000; i++ ){ x+=i; } return true; } ).itcount()" ) +print( "about to fork shell: " + Date() ) +join = startParallelShell( "db.foo.find( function(){ x = \"\"; for ( i=0; i<10000; i++ ){ x+=i; } return true; } ).itcount()" ) +print( "after forking shell: " + Date() ) -function getMine(){ +function getMine( printInprog ){ var inprog = db.currentOp().inprog; + if ( printInprog ) + printjson( inprog ) var mine = [] for ( var x=0; x<inprog.length; x++ ){ if ( inprog[x].query && inprog[x].query.$where ){ @@ -40,8 +44,8 @@ function getMine(){ state = 0; // 0 = not found, 1 = killed, killTime = null; -for ( i=0; i<100000; i++ ){ - var mine = getMine(); +for ( i=0; i<( 100* 1000 ); i++ ){ + mine = getMine( state == 0 && i > 20 ); if ( state == 0 ){ if ( mine.length == 0 ){ sleep(1); @@ -56,14 +60,19 @@ for ( i=0; i<100000; i++ ){ state = 2; break; } + sleep(1) continue; } } +print( "after loop: " + Date() ); +assert( killTime , "timed out waiting too kill last mine:" + tojson(mine) ) + +assert.eq( 2 , state , "failed killing" ); + killTime = (new Date()).getTime() - killTime.getTime() print( "killTime: " + killTime ); -assert.eq( 2 , state , "failed killing" ); assert.gt( 10000 , killTime , "took too long to kill" ) join() |