From: Michael Paquier Date: Wed, 19 Jun 2019 02:02:19 +0000 (+0900) Subject: Fix description of WAL record XLOG_BTREE_META_CLEANUP X-Git-Tag: REL_12_BETA3~164 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3c28fd2281223580b88473e5145b752cc7cbadf9;p=postgresql 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 --- diff --git a/src/backend/access/rmgrdesc/nbtdesc.c b/src/backend/access/rmgrdesc/nbtdesc.c index 989c85ac08..a14eb792ec 100644 --- a/src/backend/access/rmgrdesc/nbtdesc.c +++ b/src/backend/access/rmgrdesc/nbtdesc.c @@ -97,8 +97,10 @@ btree_desc(StringInfo buf, XLogReaderState *record) } 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", xlrec->oldest_btpo_xact, xlrec->last_cleanup_num_heap_tuples);