ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Timestamps, Transactions
    • None
    • Storage Engines - Transactions
    • 2.765
    • SE Transactions - 2026-12-04
    • None

      Problem

      A follower rejects a prepare, commit or durable timestamp at or below the last picked-up checkpoint timestamp (_txn_check_follower_checkpoint_ts, WT-18878 for commit and durable, WT-18943 for prepare). _txn_set_rollback_timestamp does not call it. It only requires the rollback timestamp to be after the stable timestamp.

      On a follower the picked-up checkpoint timestamp can be ahead of the local stable timestamp, so a rollback timestamp after stable can still be at or below the checkpoint timestamp.

      The step-up ingest drain stores the rollback timestamp of a prepared rollback in the durable timestamp slot and only drains updates whose durable timestamp is in the drain range, which starts after the last checkpoint timestamp. A rollback at or below the checkpoint timestamp could therefore be skipped, leaving a preserved prepared cell in the stable btree unresolved.

      Proposed change

      • Call _txn_check_follower_checkpoint_ts from _txn_set_rollback_timestamp so a follower returns WT_EINVAL for a rollback timestamp at or below the last checkpoint timestamp.
      • Add a Python test that prepares a transaction on a follower and expects WT_EINVAL when the rollback timestamp is at or below the picked-up checkpoint timestamp, and success when it is above.

      Open points

      • Confirm with a test that the drain skip described above is reachable without the check.
      • The leader is unaffected: the helper returns immediately there, and the rollback timestamp must already be after stable.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Chenhao Qu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: