summaryrefslogtreecommitdiff
path: root/jstests/replsets
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@10gen.com>2011-09-07 18:07:29 -0400
committerSpencer T Brody <spencer@10gen.com>2011-09-07 18:07:29 -0400
commitf9d784faf0f8d6178e2f1758d9b36521ca6acbc8 (patch)
tree080dd65187ccb95ea385c6de4539500e9519033e /jstests/replsets
parent399d8bf50b3ac51bc07c8e7b0c4aa9b3b02c3da6 (diff)
downloadmongo-f9d784faf0f8d6178e2f1758d9b36521ca6acbc8.tar.gz
Move slow replica set test to slowNightly directory.
Diffstat (limited to 'jstests/replsets')
-rw-r--r--jstests/replsets/priority1.js173
1 files changed, 0 insertions, 173 deletions
diff --git a/jstests/replsets/priority1.js b/jstests/replsets/priority1.js
deleted file mode 100644
index 3eef5cfe96d..00000000000
--- a/jstests/replsets/priority1.js
+++ /dev/null
@@ -1,173 +0,0 @@
-// come up with random priorities and make sure that the right member gets
-// elected. then kill that member and make sure then next one gets elected.
-
-load("jstests/replsets/rslib.js");
-
-var rs = new ReplSetTest( {name: 'testSet', nodes: 3} );
-var nodes = rs.startSet();
-rs.initiate();
-
-var master = rs.getMaster();
-
-var everyoneOkSoon = function() {
- var status;
- assert.soon(function() {
- var ok = true;
- status = master.adminCommand({replSetGetStatus : 1});
-
- if (!status.members) {
- return false;
- }
-
- for (var i in status.members) {
- if (status.members[i].health == 0) {
- continue;
- }
- ok &= status.members[i].state == 1 || status.members[i].state == 2;
- }
- return ok;
- }, tojson(status));
-};
-
-var checkPrimaryIs = function(node) {
- var status;
-
- assert.soon(function() {
- var ok = true;
-
- try {
- status = master.adminCommand({replSetGetStatus : 1});
- }
- catch(e) {
- print(e);
- reconnect(master);
- status = master.adminCommand({replSetGetStatus : 1});
- }
-
- var str = "goal: "+node.host+"==1 states: ";
- if (!status || !status.members) {
- return false;
- }
- status.members.forEach( function(m) {
- str += m.name + ": "+m.state +" ";
-
- if (m.name == node.host) {
- ok &= m.state == 1;
- }
- else {
- ok &= m.state != 1 || (m.state == 1 && m.health == 0);
- }
- });
- print(str);
-
- occasionally(function() {
- printjson(status);
- }, 15);
-
- return ok;
- }, node.host+'==1', 60000, 1000);
-
- everyoneOkSoon();
-};
-
-everyoneOkSoon();
-
-// intial sync
-master.getDB("foo").bar.insert({x:1});
-rs.awaitReplication();
-
-print("starting loop");
-
-var n = 5;
-for (i=0; i<n; i++) {
- print("Round "+i+": FIGHT!");
-
- var max = null;
- var second = null;
- reconnect(master);
- var config = master.getDB("local").system.replset.findOne();
-
- var version = config.version;
- config.version++;
-
- for (var j=0; j<config.members.length; j++) {
- var priority = Math.random()*100;
- config.members[j].priority = priority;
-
- if (!max || priority > max.priority) {
- max = config.members[j];
- }
- }
-
- for (var j=0; j<config.members.length; j++) {
- if (config.members[j] == max) {
- continue;
- }
- if (!second || config.members[j].priority > second.priority) {
- second = config.members[j];
- }
- }
-
- print("max is "+max.host+" with priority "+max.priority+", reconfiguring...");
-
- var count = 0;
- while (config.version != version && count < 100) {
- reconnect(master);
-
- occasionally(function() {
- print("version is "+version+", trying to update to "+config.version);
- });
-
- try {
- master.adminCommand({replSetReconfig : config});
- master = rs.getMaster();
- reconnect(master);
-
- version = master.getDB("local").system.replset.findOne().version;
- }
- catch (e) {
- print("Caught exception: "+e);
- }
-
- count++;
- }
-
- assert.soon(function() {
- rs.getMaster();
- return rs.liveNodes.slaves.length == 2;
- }, "2 slaves");
-
- assert.soon(function() {
- versions = [0,0];
- rs.liveNodes.slaves[0].setSlaveOk();
- versions[0] = rs.liveNodes.slaves[0].getDB("local").system.replset.findOne().version;
- rs.liveNodes.slaves[1].setSlaveOk();
- versions[1] = rs.liveNodes.slaves[1].getDB("local").system.replset.findOne().version;
- return versions[0] == config.version && versions[1] == config.version;
- });
-
- // the reconfiguration needs to be replicated! the hb sends it out
- // separately from the repl
- rs.awaitReplication();
-
- print("reconfigured. Checking statuses.");
-
- checkPrimaryIs(max);
-
- rs.stop(max._id);
-
- var master = rs.getMaster();
-
- print("killed max primary. Checking statuses.");
-
- print("second is "+second.host+" with priority "+second.priority);
- checkPrimaryIs(second);
-
- rs.restart(max._id);
- master = rs.getMaster();
-
- print("Restarted max. Checking statuses.");
- checkPrimaryIs(max);
-}
-
-print("priority1.js SUCCESS!");