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

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.7.0
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • Repl 2020-05-18

      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.

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

              Created:
              Updated:
              Resolved: