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.