diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index e5f5d098668..cd8eb1898af 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -3438,7 +3438,6 @@ multixact_redo(XLogReaderState *record) else if (info == XLOG_MULTIXACT_TRUNCATE_ID) { xl_multixact_truncate xlrec; - int pageno; memcpy(&xlrec, XLogRecGetData(record), SizeOfMultiXactTruncate); @@ -3463,14 +3462,6 @@ multixact_redo(XLogReaderState *record) SetMultiXactIdLimit(xlrec.endTruncOff, xlrec.oldestMultiDB, false); PerformMembersTruncation(xlrec.startTruncMemb, xlrec.endTruncMemb); - - /* - * During XLOG replay, latest_page_number isn't necessarily set up - * yet; insert a suitable value to bypass the sanity test in - * SimpleLruTruncate. - */ - pageno = MultiXactIdToOffsetPage(xlrec.endTruncOff); - MultiXactOffsetCtl->shared->latest_page_number = pageno; PerformOffsetsTruncation(xlrec.startTruncOff, xlrec.endTruncOff); LWLockRelease(MultiXactTruncationLock); diff --git a/src/include/access/slru.h b/src/include/access/slru.h index dd52e8cec7e..558f7d9abb2 100644 --- a/src/include/access/slru.h +++ b/src/include/access/slru.h @@ -93,7 +93,9 @@ typedef struct SlruSharedData /* * latest_page_number is the page number of the current end of the log; * this is not critical data, since we use it only to avoid swapping out - * the latest page. + * the latest page. (An exception: an accurate latest_page_number is + * needed on pg_multixact/offsets to replay WAL generated with older minor + * versions correctly. See RecordNewMultiXact().) */ int latest_page_number;