Fix invalid checksum state transition in checkpoints
Daniel Gustafsson <dgustafsson@postgresql.org>
Author:
Daniel Gustafsson <dgustafsson@postgresql.org>
Date: 2026-04-30T11:41:48Z
Releases:
19 (unreleased)
Fix invalid checksum state transition in checkpoints Commit 78e950cb8 added checksum state handling to all XLOG_CHECKPOINT records which caused unnecessary state transitions and emission of procsignal barriers. Remove as only the _REDO record need to handle checksum state. Barrier emission is also consistently made after controlfile updates to avoid race conditions. Additionally, interrupts are held between calling ProcSignalInit and InitLocalDataChecksumState to remove a window where otherwise invalid state transitions can happen. Also remove a pointless assertion on Controlfile which will never hit. Author: Tomas Vondra <tomas@vondra.me> Author: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Ayush Tiwari <ayushtiwari.slg01@gmail.com> Reviewed-by: SATYANARAYANA NARLAPURAM <satyanarlapuram@gmail.com> Discussion: https://postgr.es/m/9197F930-DDEB-4CAC-82A2-16FEC715CCE8@yesql.se
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/transam/xlog.c | modified | +32 −75 |
| src/backend/postmaster/auxprocess.c | modified | +10 −0 |
| src/backend/postmaster/datachecksum_state.c | modified | +4 −4 |
| src/backend/utils/init/postinit.c | modified | +10 −0 |
Discussion
- Changing the state of data checksums in a running cluster 144 messages · 2024-07-03 → 2026-07-02