FCV transition in progress guard prevents configvsr_reshard_collection command from joining existing coordinator state machine

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Cluster Scalability
    • Fully Compatible
    • ALL
    • v9.0
    • ClusterScalability 6Jul-20Jul, ClusterScalability 20Jul-3Aug
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      This is a problem because if the ReshardCollection DDL coordinator fails over, and re-sends `configvsr_reshard_collection`, while an FCV upgrade/downgrade starts. The `configvsr_reshard_collection` will return early with the "fcv transition in progress" guard, rather than join on the existing coordinator state machine. This then causes the ReshardCollection DDL coordinator to finish and release its DDL lock early while a resharding coordinator is still running. 

      Proposed solution: move the "fcv transition in progress" guard to after the coordinator state machine is created but before the coordinator does any real work and runs. 

      This should be safe because if fcv transition happens after the check, then fcv transition will pick up on the new coordinator state machine and abort resharding as usual . If fcv transition happens before the check, then the coordinator will immediately stop running before any real work has been done.

            Assignee:
            Wenqin Ye
            Reporter:
            Wenqin Ye
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: