1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-08 07:21:33 +03:00

Fix description of WAL record XLOG_BTREE_META_CLEANUP

This record uses one metadata buffer and registers some data associated
to the buffer, but when parsing the record for its description a direct
access to the record data was done, but there is none.  This leads
usually to an incorrect description, but can also cause crashes like in
pg_waldump.  Instead, fix things so as the parsing uses the data
associated to the metadata block.

This is an oversight from 3d92796, so backpatch down to 11.

Author: Michael Paquier
Description: https://postgr.es/m/20190617013059.GA3153@paquier.xyz
Backpatch-through: 11
This commit is contained in:
Michael Paquier 2019-06-19 11:02:28 +09:00
parent 5246d3e791
commit 6dfc946447

View File

@ -98,8 +98,10 @@ btree_desc(StringInfo buf, XLogReaderState *record)
} }
case XLOG_BTREE_META_CLEANUP: case XLOG_BTREE_META_CLEANUP:
{ {
xl_btree_metadata *xlrec = (xl_btree_metadata *) rec; xl_btree_metadata *xlrec;
xlrec = (xl_btree_metadata *) XLogRecGetBlockData(record, 0,
NULL);
appendStringInfo(buf, "oldest_btpo_xact %u; last_cleanup_num_heap_tuples: %f", appendStringInfo(buf, "oldest_btpo_xact %u; last_cleanup_num_heap_tuples: %f",
xlrec->oldest_btpo_xact, xlrec->oldest_btpo_xact,
xlrec->last_cleanup_num_heap_tuples); xlrec->last_cleanup_num_heap_tuples);