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

Test preventing snapshot reads from being serviced at an inconsistent point during initial sync

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.7.0
    • None
    • Replication
    • None
    • Fully Compatible
    • Repl 2020-05-18

    Description

      Test the following is not allowed but results in SnapshotTooOld error:
      A new secondary starts initial syncing at time 7, so it fetches oplog entries starting at time 7. The primary keeps taking writes and commits an entry at time 10. Then a client starts a snapshot read at time 10 on the primary. The initial sync finishes at time 13. The commit point advances to time 15, so the initial syncing node has a currentCommittedSnapshot. The client sends an atClusterTime read at time 10 to the node that just left initial sync. The initial sync node services that read because it's less than the currentCommittedSnapshot, but that timestamp was mid-initial sync, so the data is inconsistent if read at that point in time.

      Attachments

        Activity

          People

            lingzhi.deng@mongodb.com Lingzhi Deng
            lingzhi.deng@mongodb.com Lingzhi Deng
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: