Hi,

While working on [1], I encountered the following assertion failure in
the WAL summarizer:

    TRAP: failed Assert("end_of_summary_lsn >= current_lsn"), File:
"walsummarizer.c", Line: 460, PID: 37935

I haven't investigated this yet, but wanted to report it in advance.

The following steps reproduce the failure:

-------------------------------------------------------
initdb -D data
echo "summarize_wal = on" >> data/postgresql.conf
pg_ctl -D data start

psql -c "CREATE TABLE t (i int)"
pg_basebackup -D sby -c fast -R

psql -c "INSERT INTO t VALUES (1)"
psql -c "CHECKPOINT"
psql -c "SELECT redo_lsn FROM pg_control_checkpoint()" # Save this redo_lsn
psql -c "INSERT INTO t VALUES (2)"
psql -c "CHECKPOINT"

cat << EOF >> sby/postgresql.conf
port = 5433
recovery_target_lsn = '0/03001B08' # Use the saved redo_lsn
recovery_target_inclusive = false
recovery_target_action = 'pause'
EOF

pg_ctl -D sby start

# Wait until all three queries return true
psql -c "SELECT pg_get_wal_replay_pause_state() = 'paused'" -p 5433
psql -c "SELECT EXISTS (SELECT FROM pg_available_wal_summaries() WHERE
tli = 1 AND start_lsn = '0/03001B08')" -p 5433  # Use the saved
redo_lsn
psql -c "SELECT EXISTS (SELECT FROM pg_stat_activity WHERE
backend_type = 'walsummarizer' AND wait_event = 'WalSummarizerWal')"
-p 5433

pg_ctl -D sby promote
-------------------------------------------------------

After promotion, I got the following messages:

-------------------------------------------------------
\
2026-10-22 10:01:53.329 JST [37932] LOG:  selected new timeline ID: 2
2026-10-22 10:01:53.361 JST [37932] LOG:  archive recovery complete
TRAP: failed Assert("end_of_summary_lsn >= current_lsn"), File:
"walsummarizer.c", Line: 460, PID: 37935
2026-10-22 10:01:53.363 JST [37930] LOG:  checkpoint starting: force
2026-10-22 10:01:53.364 JST [37927] LOG:  database system is ready to
accept connections
0   postgres                            0x000000011060e742
ExceptionalCondition + 178
1   postgres                            0x00000001102e9762
WalSummarizerMain + 1698
2   postgres                            0x00000001102de549
postmaster_child_launch + 377
3   postgres                            0x00000001102e2c91
StartChildProcess + 273
4   postgres                            0x00000001102e4ec2
LaunchMissingBackgroundProcesses + 674
5   postgres                            0x00000001102e30f9 ServerLoop + 489
6   postgres                            0x00000001102e1e69 PostmasterMain + 5753
7   postgres                            0x0000000110179e43 main + 771
8   dyld                                0x00007ff811152530 start + 3056
2026-10-22 10:01:53.371 JST [37927] LOG:  WAL summarizer process (PID
37935) was terminated by signal 6: Abort trap: 6
2026-10-22 10:01:53.371 JST [37927] LOG:  terminating any other active
server processes
-------------------------------------------------------

Regards,

[1] https://postgr.es/m/[email protected]

-- 
Fujii Masao


Reply via email to