-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
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.