summaryrefslogtreecommitdiff
path: root/jstests/replsets/stepdown.js
diff options
context:
space:
mode:
authorKristina <kristina@10gen.com>2011-06-10 10:56:46 -0400
committerKristina <kristina@10gen.com>2011-06-10 10:56:46 -0400
commit0180e84034448d695ca9b442faf580723aba3435 (patch)
tree792e165f51da0a009277b8deee991f5d21b556cf /jstests/replsets/stepdown.js
parentab883bc2ed0ca0f152352afc098b7cde34b034ca (diff)
downloadmongo-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.js32
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();