Makes all JS tests access the replica set member state from the class itself instead of the object instance. Also removes some unused code.
92 lines
1.6 KiB
JavaScript
92 lines
1.6 KiB
JavaScript
/**
|
|
* Test syncing from non-primaries.
|
|
*
|
|
* Start a set.
|
|
* Inital sync.
|
|
* Kill member 1.
|
|
* Add some data.
|
|
* Kill member 0.
|
|
* Restart member 1.
|
|
* Check that it syncs.
|
|
* Add some data.
|
|
* Kill member 1.
|
|
* Restart member 0.
|
|
* Check that it syncs.
|
|
*/
|
|
|
|
load("jstests/replsets/rslib.js");
|
|
|
|
var name = "sync_passive";
|
|
var host = getHostName();
|
|
|
|
var replTest = new ReplSetTest( {name: name, nodes: 3} );
|
|
|
|
var nodes = replTest.startSet();
|
|
|
|
// make sure node 0 becomes primary initially and that node 2 never will
|
|
var config = replTest.getReplSetConfig();
|
|
config.members[0].priority = 2;
|
|
config.members[2].priority = 0;
|
|
|
|
replTest.initiate(config);
|
|
replTest.waitForState(replTest.nodes[0], ReplSetTest.State.PRIMARY, 60 * 1000);
|
|
|
|
var master = replTest.getPrimary().getDB("test");
|
|
var server0 = master;
|
|
var server1 = replTest.liveNodes.slaves[0];
|
|
|
|
print("Initial sync");
|
|
for (var i=0;i<100;i++) {
|
|
master.foo.insert({x:i});
|
|
}
|
|
replTest.awaitReplication();
|
|
|
|
|
|
print("stop #1");
|
|
replTest.stop(1);
|
|
|
|
|
|
print("add some data");
|
|
for (var i=0;i<1000;i++) {
|
|
master.bar.insert({x:i});
|
|
}
|
|
replTest.awaitReplication();
|
|
|
|
|
|
print("stop #0");
|
|
replTest.stop(0);
|
|
|
|
|
|
print("restart #1");
|
|
replTest.restart(1);
|
|
|
|
|
|
print("check sync");
|
|
replTest.awaitReplication(60 * 1000);
|
|
|
|
|
|
print("add data");
|
|
reconnect(server1);
|
|
master = replTest.getPrimary().getDB("test");
|
|
for (var i=0;i<1000;i++) {
|
|
master.bar.insert({x:i});
|
|
}
|
|
replTest.awaitReplication();
|
|
|
|
|
|
print("kill #1");
|
|
replTest.stop(1);
|
|
|
|
|
|
print("restart #0");
|
|
replTest.restart(0);
|
|
reconnect(server0);
|
|
|
|
|
|
print("wait for sync");
|
|
replTest.awaitReplication();
|
|
|
|
|
|
print("bring #1 back up, make sure everything's okay");
|
|
replTest.restart(1);
|