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

            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: