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

Secondary reads from internal (non-network) clients should read at the last applied timestamp

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.0.0-rc0
    • Affects Version/s: None
    • Component/s: Storage
    • Labels:
    • Fully Compatible
    • ALL
    • Storage NYC 2018-05-21

      When checking whether or not to read from the local snapshot (last applied timestamp) on a secondary, we restrict to clients where isFromUserConnection is true. This is to prevent a bug where rolled back index builds are still visible (similar to the invariant in BF-8258). See this patch build failure where the check for isFromUserConnection is removed:

      The most likely cause is that rollback does not correctly rewind the last applied snapshot timestamp. We should evaluate how replication rolls back its timestamps and ensure that the local snapshot timestamp is correctly updated.

      The solution should be for users of ShouldNotConflictWithSecondaryBatchApplication who opt-out of taking the PBWM lock should be able to read without a timestamp. This applies to the threads listed in the comments, with the addition of rsBackgroundSync.

            Assignee:
            louis.williams@mongodb.com Louis Williams
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: