Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-39758

double_rollback.js should reliably wait for node 0 to complete rollback

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 3.4.19, 3.6.10
    • Fix Version/s: 3.4.20, 3.6.12
    • Component/s: Replication
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v3.4
    • Sprint:
      Repl 2019-03-11
    • Linked BF Score:
      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.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: