• Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Truncate
    • None
    • Storage Engines - Foundations
    • 27.254
    • None
    • None

      Summary: Assert at step-up that no open transaction holds a follower truncate-list entry

      Problem

      • __disagg_step_up has no check for active transactions (step-down has __disagg_assert_no_active_writes_callback, diagnostic only).
      • __layered_build_sorted_truncates selects every entry with a transaction id, including uncommitted ones.
      • An uncommitted entry is replayed onto stable (diagnostic assert on start_ts; release stamps timestamp 0), then __wt_layered_table_truncate_clear frees it while the transaction's WT_TXN_OP_FOLLOWER_TRUNCATE still points at it.

      Scenario

      • Follower session truncates a range and does not commit; connection reconfigures to leader.
      • Release build: range deleted on stable without a commit; later commit or rollback dereferences a freed entry.

      Definition of Done

      • Step-up asserts (diagnostic) that no session holds an uncommitted WT_TXN_OP_FOLLOWER_TRUNCATE; release build skips uncommitted entries in the drain or fails step-up with an error.
      • Python test: step-up with an open follower truncate transaction hits the assert or error instead of replaying.

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

              Created:
              Updated: