Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
3.4.19, 3.6.10
-
None
-
Fully Compatible
-
ALL
-
v3.4
-
Repl 2019-03-11
-
10
Description
double_rollback.js waits for node 0 to roll back using the following checks:
jsTestLog("Wait for nodes 0 to roll back and both node 0 and 2 to catch up to node 1");
|
waitForState(nodes[0], ReplSetTest.State.SECONDARY);
|
waitForState(nodes[2], ReplSetTest.State.SECONDARY);
|
rst.awaitReplication();
|
However, these checks are not reliable on 3.4 and 3.6. The first check can succeed because node 0 was in state SECONDARY prior to entering rollback. The awaitReplication() only checks liveNodes on 3.4 and 3.6, which may not include node 0 if the last call to isMaster failed due to the node closing connections when entering rollback. We require a more reliable way to wait for node 0 to complete rollback.