diff options
author | Kristina <kristina@10gen.com> | 2011-04-13 14:29:23 -0400 |
---|---|---|
committer | Kristina <kristina@10gen.com> | 2011-04-13 14:29:23 -0400 |
commit | 81d192dff01d80ac89ef4a021f729eb377d5bc33 (patch) | |
tree | be1d5e45459d3554099d711ee9c06f21fcabd3d5 /jstests/replsets/stepdown.js | |
parent | e50a02fa1e3cdb4856c89f1f0144b8f2ab6cd88e (diff) | |
download | mongo-81d192dff01d80ac89ef4a021f729eb377d5bc33.tar.gz |
allow lower-priority members to be elected during step down
Diffstat (limited to 'jstests/replsets/stepdown.js')
-rw-r--r-- | jstests/replsets/stepdown.js | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/jstests/replsets/stepdown.js b/jstests/replsets/stepdown.js index 12fc1b74437..fb888242963 100644 --- a/jstests/replsets/stepdown.js +++ b/jstests/replsets/stepdown.js @@ -10,7 +10,8 @@ master.getDB("foo").bar.insert({x:1}); replTest.awaitReplication(); // lock secondary -replTest.liveNodes.slaves[0].getDB("admin").runCommand({fsync : 1, lock : 1}); +var locked = replTest.liveNodes.slaves[0]; +locked.getDB("admin").runCommand({fsync : 1, lock : 1}); print("waiting 11 seconds"); @@ -36,4 +37,43 @@ var r2 = master.getDB("admin").runCommand({ismaster : 1}); assert.eq(r2.ismaster, false); assert.eq(r2.secondary, true); +print("unlock"); +printjson(locked.getDB("admin").$cmd.sys.unlock.findOne()); + +print("reset stepped down time"); +master.getDB("admin").runCommand({replSetFreeze:0}); +master = replTest.getMaster(); + +print("make config with priorities"); +var config = master.getDB("local").system.replset.findOne(); +config.version++; +config.members[0].priority = 2; +config.members[1].priority = 1; +try { + master.getDB("admin").runCommand({replSetReconfig : config}); +} +catch (e) { + print(e); +} +replTest.awaitReplication(); + +master = replTest.getMaster(); +var firstMaster = master; +print("master is now "+firstMaster); + +try { + printjson(master.getDB("admin").runCommand({replSetStepDown : 100, force : true})); +} +catch (e) { + print(e); +} + +print("get a master"); +replTest.getMaster(); + +assert.soon(function() { + var secondMaster = replTest.getMaster(); + return firstMaster+"" != secondMaster+""; + }, 'making sure '+firstMaster+' isn\'t still master', 60000); + replTest.stopSet(); |