diff options
Diffstat (limited to 'jstests/replsets/rollback.js')
-rw-r--r-- | jstests/replsets/rollback.js | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/jstests/replsets/rollback.js b/jstests/replsets/rollback.js index d53566d24a8..41fc6b6cdef 100644 --- a/jstests/replsets/rollback.js +++ b/jstests/replsets/rollback.js @@ -108,6 +108,7 @@ doTest = function (signal) { wait(function () { return b.bar.count() == 3; }); A.runCommand({ replSetTest: 1, blind: true }); + reconnect(a,b); wait(function () { return B.isMaster().ismaster; }); b.bar.insert({ q: 4 }); @@ -118,12 +119,14 @@ doTest = function (signal) { // a should not have the new data as it was in blind state. B.runCommand({ replSetTest: 1, blind: true }); print("*************** wait for server to reconnect ****************"); - wait(function() { try { a.bar.findOne(); return true; } catch(e) { print(e); return false; } }); + reconnect(a,b); A.runCommand({ replSetTest: 1, blind: false }); + reconnect(a,b); print("*************** B ****************"); wait(function () { try { return !B.isMaster().ismaster; } catch(e) { return false; } }); print("*************** A ****************"); + reconnect(a,b); wait(function () { try { return A.isMaster().ismaster; @@ -150,6 +153,7 @@ doTest = function (signal) { // bring B back online B.runCommand({ replSetTest: 1, blind: false }); + reconnect(a,b); wait(function () { return B.isMaster().ismaster || B.isMaster().secondary; }); @@ -161,7 +165,21 @@ doTest = function (signal) { pause("rollback.js SUCCESS"); replTest.stopSet(signal); -} +}; + + +var reconnect = function(a,b) { + wait(function() { + try { + a.bar.stats(); + b.bar.stats(); + return true; + } catch(e) { + print(e); + return false; + } + }); +}; print("rollback.js"); doTest( 15 ); |