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

Prevent false positives from ReshardingCoordinatorService's allParticipantsGTE()

    • Fully Compatible
    • ALL
    • Sharding 2020-12-14
    • 1

      In the ReshardingCoordinatorObserver, allParticipantsInStateGTE expects that if one state is greater than the expected state, all Participants must be. This is not the case.

      eg)
      . If recipient0 hangs before durably reporting to the coordinator document that it has transitioned to RecipientStateEnum::kApplying
      . recipient1 successfully transitions to RecipientStateEnum::kSteadyState
      . THEN it is possible for the observer to see participant0 in state 0, and participant1 in state 4. In this case, the method would falsely return true instead of false.

      Please also add a test case for this scenario. 

            Assignee:
            haley.connelly@mongodb.com Haley Connelly
            Reporter:
            haley.connelly@mongodb.com Haley Connelly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: