| From: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
|---|---|
| To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Assertion failure in WAL summarizer |
| Date: | 2026-10-22 01:38:03 |
| Message-ID: | CAHGQGwFbpzR2Wkrku9J8w6E+-rzD6Ovazs8n_kxvzfccfnJ0tg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
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/19774-8a1cbfd1774fcd0c@postgresql.org
--
Fujii Masao
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Henson Choi | 2026-10-22 01:56:06 | Re: [PATCH v1] Fix for bug #19773 : pg_dump differing generation expressions of inherited columns |
| Previous Message | Chao Li | 2026-10-22 01:16:47 | Re: tablecmds: Deadlock caused by Attach Partition |