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

Prevent false positives from ReshardingCoordinatorService's allParticipantsGTE()

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Sharding 2020-12-14
    • Story Points:
      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

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

              Dates

              Created:
              Updated:
              Resolved: