Stress untimestamped follower snapshot reads in test format

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Test Format
    • None

      Test format's multi-node disaggregated mode runs all its transactions with timestamps, so nothing in the stress exercised the reads WT-18156's stable bind checks protect: transactional snapshot reads without a read timestamp on a follower, racing checkpoint pickups.

      Add reader threads to the follower process that hold an untimestamped snapshot for several seconds while checkpoints stream underneath (the snapshot configuration now checkpoints every few seconds), re-reading a scan from a random position through freshly opened cursors and repeating the reads as point lookups, failing on any key, value, or row-count change. A refused or conflicted read abandons the transaction and retries. Add a long-running Evergreen task running the multi-node snapshot configuration with randomized settings.

      Notes from developing the reproducer:

      • The follower replays the whole workload into its ingest tables, so a reader's pinned older ingest version masks a leaked stable update; detection rides on inserts and removes, which have no older version to hide behind.
      • The leader's checkpoint cadence bounds the pickup rate, which bounds how often reader transactions span an adoption.

      Verified to fail on a tree without the WT-18156 fix ("snapshot key changed within a transaction") and to run clean with it.

            Assignee:
            Chenhao Qu
            Reporter:
            Chenhao Qu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: