Skip to content

Add TestReplayXversion module for cross-version WAL replay testing#42

Open
x4m wants to merge 3 commits into
PGBuildFarm:mainfrom
x4m:x_version_replay
Open

Add TestReplayXversion module for cross-version WAL replay testing#42
x4m wants to merge 3 commits into
PGBuildFarm:mainfrom
x4m:x_version_replay

Conversation

@x4m
Copy link
Copy Markdown

@x4m x4m commented May 26, 2026

Test that WAL generated by the .0 release of a major version replays correctly on the current STABLE binary. This catches backwards- compatibility regressions in WAL replay code, such as the self-deadlock in RecordNewMultiXact introduced by commit 0852643e1c6.

The .0 binary is built once and cached. Each run generates fresh WAL (including 2500 multixacts via the savepoint trick to cross an SLRU page boundary) and verifies that a STABLE standby can replay it.

Written using Cursor, needs more testing. I've fixed some issues that catched my eye, but some more review is definitely needed.

x4m added 3 commits May 26, 2026 16:02
Test that WAL generated by the .0 release of a major version replays
correctly on the current STABLE binary.  This catches backwards-
compatibility regressions in WAL replay code, such as the self-deadlock
in RecordNewMultiXact introduced by commit 0852643e1c6.

The .0 binary is built once and cached.  Each run generates fresh WAL
(including 2500 multixacts via the savepoint trick to cross an SLRU
page boundary) and verifies that a STABLE standby can replay it.
Run the .0 regression tests via pg_regress against the .0 primary for
diverse WAL coverage.  The regression test files are preserved in
inst-dot0/regress/ during the build phase.  A 180-second watchdog
kills pg_regress if it hangs.
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