ReshardingCoordinator StepDownStepUpEachTransition test can deadlock itself

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Cluster Scalability
    • Fully Compatible
    • v8.3, v8.0
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      In checkDonorDocumentsFinalMetrics function, there is a loop that waits for the final count to be set. This is problematic when current state is blocking writes, because the final count are only updated after recipients go into strict consistency inside verifyFinal and the test thread is also responsible for moving the recipients to strict consistency, so it gets stuck waiting until the critical section times out in the resharding state machine.

      The reason why test is not failing all the time is because when transitioning to blocking writes, the test waits for the opObserver to set the coordinator doc state to blocking writes. However, this is not yet committed, so if the test thread is fast enough, it can actually read the older ocordinator doc state and completely skip checkDonorDocumentsFinalMetrics.

            Assignee:
            Randolph Tan
            Reporter:
            Randolph Tan
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: