diff options
author | Kristina Chodorow <kristina@10gen.com> | 2010-10-07 17:24:42 -0400 |
---|---|---|
committer | Kristina Chodorow <kristina@10gen.com> | 2010-10-07 17:25:06 -0400 |
commit | 9ac87ee8431481be11edac0b2c5a674c34d6f505 (patch) | |
tree | 815bbd98c3dbf1e4d7cf9b76da0f32893a8dd615 | |
parent | 7f4f43d8671b8d2d334a1118b3d7a566f3d6624c (diff) | |
download | mongo-9ac87ee8431481be11edac0b2c5a674c34d6f505.tar.gz |
added reconnect function
-rw-r--r-- | jstests/replsets/rollback.js | 22 | ||||
-rw-r--r-- | jstests/replsets/rollback2.js | 30 | ||||
-rwxr-xr-x | jstests/replsets/rollback3.js | 32 |
3 files changed, 64 insertions, 20 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 ); diff --git a/jstests/replsets/rollback2.js b/jstests/replsets/rollback2.js index 9b1e1d4bfa4..ac20cff5d74 100644 --- a/jstests/replsets/rollback2.js +++ b/jstests/replsets/rollback2.js @@ -163,20 +163,18 @@ doTest = function (signal) { wait(function () { return b.bar.count() == a.bar.count(); }); A.runCommand({ replSetTest: 1, blind: true }); + reconnect(a, b); + wait(function () { return B.isMaster().ismaster; }); doItemsToRollBack(b); // a should not have the new data as it was in blind state. B.runCommand({ replSetTest: 1, blind: true }); - try { - A.runCommand({ replSetTest: 1, blind: false }); - } - catch(e) { - print(e); - } + reconnect(a, b); + A.runCommand({ replSetTest: 1, blind: false }); + reconnect(a,b); - wait(function () { try { return !B.isMaster().ismaster; } catch(e) { return false; } }); wait(function () { try { return A.isMaster().ismaster; } catch(e) { return false; } }); @@ -189,7 +187,8 @@ doTest = function (signal) { // bring B back online // as A is primary, B will roll back and then catch up B.runCommand({ replSetTest: 1, blind: false }); - + reconnect(a,b); + wait(function () { return B.isMaster().ismaster || B.isMaster().secondary; }); // everyone is up here... @@ -202,7 +201,20 @@ doTest = function (signal) { pause("rollback2.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("rollback2.js"); diff --git a/jstests/replsets/rollback3.js b/jstests/replsets/rollback3.js index e9cb9a209ef..50bda7497d1 100755 --- a/jstests/replsets/rollback3.js +++ b/jstests/replsets/rollback3.js @@ -188,21 +188,20 @@ doTest = function (signal) { wait(function () { return b.bar.count() == a.bar.count(); }); A.runCommand({ replSetTest: 1, blind: true }); - wait(function () { return B.isMaster().ismaster; }); + reconnect(a,b); + wait(function () { try { return B.isMaster().ismaster; } catch(e) { return false; } }); doItemsToRollBack(b); // a should not have the new data as it was in blind state. B.runCommand({ replSetTest: 1, blind: true }); - try { - A.runCommand({ replSetTest: 1, blind: false }); - } - catch(e) { - print(e); - } + reconnect(a,b); + + A.runCommand({ replSetTest: 1, blind: false }); + reconnect(a,b); wait(function () { try { return !B.isMaster().ismaster; } catch(e) { return false; } }); - wait(function () { return A.isMaster().ismaster; }); + wait(function () { try { return A.isMaster().ismaster; } catch(e) { return false; } }); assert(a.bar.count() >= 1, "count check"); doWritesToKeep2(a); @@ -213,6 +212,7 @@ doTest = function (signal) { // bring B back online // as A is primary, B will roll back and then catch up B.runCommand({ replSetTest: 1, blind: false }); + reconnect(a,b); wait(function () { return B.isMaster().ismaster || B.isMaster().secondary; }); @@ -224,7 +224,21 @@ doTest = function (signal) { pause("rollback3.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("rollback3.js"); doTest( 15 ); |