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

Make sure node stepped down before waiting for catchup takeover in catchup_takeover_with_higher_config.js

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.0.3, 4.4.9, 5.1.0-rc0
    • Affects Version/s: 5.1 Required
    • Component/s: Replication
    • Labels:
    • Fully Compatible
    • ALL
    • v5.0, v4.4
    • Repl 2021-08-23
    • 150

      There is a race in catchup_takeover_with_higher_config.js. When waiting for node1 to catchup takeover node2, we check that all nodes see node1 as primary, however it's possible that node1 has not finished stepping down (due to node2 stepup) before we wait, so it remains primary state and the wait condition is trivially satisfied, meaning that the catchup takeover has not happened yet after the wait. Later after the failpoint on node2 is lifted, node2 successfully becomes primary (because node1 didn't do catchup takeover) and stays as primary till the end, causing this line to hang forever.

            wenbin.zhu@mongodb.com Wenbin Zhu
            wenbin.zhu@mongodb.com Wenbin Zhu
            0 Vote for this issue
            1 Start watching this issue