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

Ensure ReshardingCoordinator's _flushReshardingStateChanges for CoordinatorStateEnum::kPreparingToDonate isn't interrupted on abort

    • Fully Compatible
    • ALL
    • v5.0
    • Sharding 2021-05-31
    • 149
    • 1

      The ReshardingCoordinator's _cancelableOpCtxFactory should be tied to the stepdownToken instead of the abortToken when it flushes its transition to kPreparingToDonate to participants (and then swapped back to be tied to the abortToken immediately after).

      Context:
      Resharding donor and recipient machine creation depend on the ReshardingCoordinator's _flushReshardingStateChanges to succeed when the coordinator transitions to kPreparingToDonate. Right now, if an abort comes in while the flushes are in progress, the operation context tied to _cancelableOpCtxFactory will be interrupted upon the abortToken's cancelation.

      Without participant machine creation, the coordinator can hang after transitioning to kError

       

            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: