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

Fix cancellation races in initial syncer

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.4.2
    • Component/s: Replication
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v5.0, v4.4
    • Sprint:
      Repl 2020-09-07, Repl 2020-09-21
    • Linked BF Score:
      10

      Description

      Cancelling an initial sync attempt may be missed if the code has run a callback but the callback has not yet acquired the initial syncer mutex. Since the callback is already running it won't be canceled, and the code has no way to know not to schedule the next callback.

      This may be a matter of having _checkForShutdownAndConvertStatus_inlock check an overall status, though caution must be taken when a lock may be temporarily released in a callback, and also at least one call of _checkForShutdownAndConvertStatus_inlock occurs (despite the name) outside the lock.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              matthew.russotto Matthew Russotto
              Reporter:
              matthew.russotto Matthew Russotto
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: