diff options
Diffstat (limited to 'jstests/repl/snapshot2.js')
-rw-r--r-- | jstests/repl/snapshot2.js | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/jstests/repl/snapshot2.js b/jstests/repl/snapshot2.js index d65cad7..60b3531 100644 --- a/jstests/repl/snapshot2.js +++ b/jstests/repl/snapshot2.js @@ -1,4 +1,6 @@ -// Test SERVER-623 - starting repl peer from a new snapshot of master +// Test SERVER-623 - starting repl peer from a new snapshot of master
+
+print("snapshot2.js 1 -----------------------------------------------------------"); ports = allocatePorts( 3 ); @@ -7,21 +9,37 @@ var basePath = "/data/db/" + baseName; a = new MongodRunner( ports[ 0 ], basePath + "-arbiter" ); l = new MongodRunner( ports[ 1 ], basePath + "-left", "127.0.0.1:" + ports[ 2 ], "127.0.0.1:" + ports[ 0 ] ); -r = new MongodRunner( ports[ 2 ], basePath + "-right", "127.0.0.1:" + ports[ 1 ], "127.0.0.1:" + ports[ 0 ] ); +r = new MongodRunner( ports[ 2 ], basePath + "-right", "127.0.0.1:" + ports[ 1 ], "127.0.0.1:" + ports[ 0 ] );
+
+print("snapshot2.js 2 -----------------------------------------------------------");
-rp = new ReplPair( l, r, a ); -rp.start(); -rp.waitForSteadyState(); +rp = new ReplPair(l, r, a); +rp.start();
+print("snapshot2.js 3 -----------------------------------------------------------");
+rp.waitForSteadyState();
+
+print("snapshot2.js 4 -----------------------------------------------------------"); big = new Array( 2000 ).toString(); // overflow oplog, so test can't pass supriously -rp.slave().setSlaveOk(); -for( i = 0; i < 500; ++i ) { - rp.master().getDB( baseName )[ baseName ].save( { _id: new ObjectId(), i: i, b: big } ); - if ( i % 250 == 249 ) { - assert.soon( function() { return i+1 == rp.slave().getDB( baseName )[ baseName ].count(); } ); +rp.slave().setSlaveOk();
+print("snapshot2.js 5 -----------------------------------------------------------");
+for (i = 0; i < 500; ++i) { + rp.master().getDB( baseName )[ baseName ].save( { _id: new ObjectId(), i: i, b: big } );
+ if (i % 250 == 249) {
+ function p() { return i + 1 == rp.slave().getDB(baseName)[baseName].count(); }
+ try {
+ assert.soon(p);
+ } catch (e) {
+ print("\n\n\nsnapshot2.js\ni+1:" + (i + 1));
+ print("slave count:" + rp.slave().getDB(baseName)[baseName].count());
+ sleep(2000);
+ print(p());
+ throw (e); + } sleep( 10 ); // give master a chance to grab a sync point - have such small oplogs the master log might overflow otherwise } -} +}
+print("snapshot2.js 6 -----------------------------------------------------------"); rp.master().getDB( "admin" ).runCommand( {fsync:1,lock:1} ); leftMaster = ( rp.master().host == rp.left().host ); @@ -47,5 +65,8 @@ assert.eq( 500, rp.slave().getDB( baseName )[ baseName ].count() ); rp.master().getDB( baseName )[ baseName ].save( {i:500} ); assert.soon( function() { return 501 == rp.slave().getDB( baseName )[ baseName ].count(); } ); -assert( !rawMongoProgramOutput().match( /resync/ ) ); -assert( !rawMongoProgramOutput().match( /SyncException/ ) );
\ No newline at end of file +assert( !rawMongoProgramOutput().match( /resync/ ) );
+assert(!rawMongoProgramOutput().match(/SyncException/));
+
+print("snapshot2.js SUCCESS ----------------");
+
|