diff options
author | Kristina Chodorow <k@ubuntu.(none)> | 2010-07-28 10:25:31 -0400 |
---|---|---|
committer | Kristina Chodorow <k@ubuntu.(none)> | 2010-07-28 10:25:31 -0400 |
commit | cdc48b26f1cf7ecb50c01e0bcc91b916cc2ce54a (patch) | |
tree | 3272e7a3d3d9fd4f80e4653084a0f7bff5d331b3 /jstests/replsets/replsetprio1.js | |
parent | df83eb6beb559d64b941c12edd8da854166cb031 (diff) | |
download | mongo-cdc48b26f1cf7ecb50c01e0bcc91b916cc2ce54a.tar.gz |
rs priority test SERVER-1503
Diffstat (limited to 'jstests/replsets/replsetprio1.js')
-rw-r--r-- | jstests/replsets/replsetprio1.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/jstests/replsets/replsetprio1.js b/jstests/replsets/replsetprio1.js new file mode 100644 index 00000000000..a0024769f59 --- /dev/null +++ b/jstests/replsets/replsetprio1.js @@ -0,0 +1,53 @@ +// FAILING TEST +// should check that election happens in priority order + +doTest = function( signal ) { + + var replTest = new ReplSetTest( {name: 'testSet', nodes: 3} ); + var nodes = replTest.nodeList(); + + replTest.startSet(); + replTest.node[0].initiate({"_id" : "unicomplex", + "members" : [ + {"_id" : 0, "host" : nodes[0], "priority" : 1}, + {"_id" : 1, "host" : nodes[1], "priority" : 2}, + {"_id" : 2, "host" : nodes[2], "priority" : 3}]}); + + sleep(10000); + + // 2 should be master + var m3 = replTest.nodes[2].runCommand({ismaster:1}) + + // FAILS: node[0] is elected master, regardless of priority + assert(m3.ismaster, 'highest priority is master'); + + // kill 2, 1 should take over + var m3Id = replTest.getNodeId(nodes[2]); + replTest.stop(m3Id); + + sleep(10000); + + var m2 = replTest.nodes[1].runCommand({ismaster:1}) + assert(m2.ismaster, 'node 2 is master'); + + // bring 2 back up, nothing should happen + replTest.start(m3Id); + + sleep(10000); + + m2 = replTest.nodes[1].runCommand({ismaster:1}) + assert(m2.ismaster, 'node 2 is still master'); + + // kill 1, 2 should become master + var m2Id = replTest.getNodeId(nodes[1]); + replTest.stop(m2Id); + + sleep(10000); + + m3 = replTest.nodes[2].runCommand({ismaster:1}) + assert(m3.ismaster, 'node 3 is master'); + + replTest.stopSet( signal ); +} + +//doTest( 15 ); |