Skip to content

fix(undo): reset transaction-local segment heads on commit#53

Merged
sqlrush merged 1 commit into
mainfrom
agent/undo-commit-local-head-reset
Jul 14, 2026
Merged

fix(undo): reset transaction-local segment heads on commit#53
sqlrush merged 1 commit into
mainfrom
agent/undo-commit-local-head-reset

Conversation

@sqlrush

@sqlrush sqlrush commented Jul 14, 2026

Copy link
Copy Markdown
Owner

What this changes

Resets transaction-local undo head and touched-segment bookkeeping after a normal commit while preserving the backend-local residual extent and file-descriptor cache. Adds a persistent-backend TAP regression that crosses the 1024-entry boundary.

Pre-fix evidence: 1024 updates committed and the 1025th failed with SQLSTATE 53R9D. The fixed binary completes all 1030 updates.

How it was tested

  • macOS enable-cluster debug/cassert build and install
  • cluster_unit: 177/177 binaries passed
  • cluster_regress: 13/13 passed
  • targeted t/270: 31/31 passed
  • PostgreSQL regression: 219/219 passed
  • release enable-cluster build without cassert/debug: passed
  • disable-cluster build/install: passed; PostgreSQL regression 219/219; no cluster entry-point symbols
  • comment headers, clang-format (568 files), SCN/GES/CLOG/release-note policy checks, and git diff --check: passed

Checklist

  • The --disable-cluster build stays binary-equivalent to upstream PostgreSQL 16.13 and passes the 219-test regression suite.
  • Required runtime safety has an explicit production branch; Assert is defense-in-depth only.
  • Code matches repository formatting rules.
  • Tests updated.

@sqlrush sqlrush marked this pull request as ready for review July 14, 2026 10:19
@sqlrush sqlrush merged commit f3ccd65 into main Jul 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant