diff options
author | Kristina <kristina@10gen.com> | 2011-06-10 10:56:46 -0400 |
---|---|---|
committer | Kristina <kristina@10gen.com> | 2011-06-10 10:56:46 -0400 |
commit | 0180e84034448d695ca9b442faf580723aba3435 (patch) | |
tree | 792e165f51da0a009277b8deee991f5d21b556cf /jstests/replsets/stepdown.js | |
parent | ab883bc2ed0ca0f152352afc098b7cde34b034ca (diff) | |
download | mongo-0180e84034448d695ca9b442faf580723aba3435.tar.gz |
don't shut down if slaves aren't up-to-date SERVER-616
Diffstat (limited to 'jstests/replsets/stepdown.js')
-rw-r--r-- | jstests/replsets/stepdown.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/jstests/replsets/stepdown.js b/jstests/replsets/stepdown.js index fb888242963..c1d6c13e1f6 100644 --- a/jstests/replsets/stepdown.js +++ b/jstests/replsets/stepdown.js @@ -49,6 +49,8 @@ var config = master.getDB("local").system.replset.findOne(); config.version++; config.members[0].priority = 2; config.members[1].priority = 1; +// make sure 1 can stay master once 0 is down +config.members[0].votes = 0; try { master.getDB("admin").runCommand({replSetReconfig : config}); } @@ -76,4 +78,34 @@ assert.soon(function() { return firstMaster+"" != secondMaster+""; }, 'making sure '+firstMaster+' isn\'t still master', 60000); + +print("check shutdown command"); +master = replTest.liveNodes.master; +var slave = replTest.liveNodes.slaves[0]; +var slaveId = replTest.getNodeId(slave); + +try { + slave.adminCommand({shutdown :1}) +} +catch (e) { + print(e); +} + +print("sleeping"); +sleep(2000); + +print("running shutdown on master: "+master); +result = replTest.getMaster().getDB("admin").runCommand({shutdown : 1, timeoutSecs : 3}); +assert.eq(result.ok, 0); + +var thrown = false; +try { + replTest.getMaster().getDB("admin").runCommand({shutdown : 1, force : true}); +} +catch (e) { + print(e); + thrown = true; +} +assert(thrown); + replTest.stopSet(); |