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

Make bgsync check stopOplogFetcher failpoint before scheduling new OplogFetcher

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.2.12, 3.4.2, 3.5.2
    • Component/s: Replication
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v3.4, v3.2
    • Sprint:
      Repl 2017-01-23, Repl 2017-02-13
    • Linked BF Score:
      26

      Description

      Uses of the stopOplogFetcher are currently racy. Currently it works by instructing the oplog fetcher to throw out any batch it has and return. After that happens, however, bgsync will reschedule a new OplogFetcher, which will most likely refetch the same batch. So long as the failpoint is on each re-fetch of that batch will continue to be thrown out. But now there's a race when turning off the failpoint where it may have fetched the batch, but not yet hit the failpoint, then the failpoint is disabled and the batch is processed.

        Attachments

          Activity

            People

            Assignee:
            spencer Spencer Brody
            Reporter:
            spencer Spencer Brody
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: