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

Prevent false positives from ReshardingCoordinatorService's allParticipantsGTE()

    XMLWordPrintable

Details

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

    Description

      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. 

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: