From 314004021e549770d3d57fd0cf286050b948472d Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Fri, 10 Oct 2025 14:52:14 -0400 Subject: [PATCH] Remove overzealous _bt_killitems assertion. An assertion in _bt_killitems expected the scan's currPos state to contain a valid LSN, saved from when currPos's page was initially read. The assertion failed to account for the fact that even logged relations can have leaf pages with an invalid LSN when built with wal_level set to "minimal". Remove the faulty assertion. Oversight in commit e6eed40e (though note that the assertion was backpatched to stable branches before 18 by commit 7c319f54). Author: Peter Geoghegan Reported-By: Matthijs van der Vleuten Bug: #19082 Discussion: https://postgr.es/m/19082-628e62160dbbc1c1@postgresql.org Backpatch-through: 13 --- src/backend/access/nbtree/nbtutils.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/backend/access/nbtree/nbtutils.c b/src/backend/access/nbtree/nbtutils.c index 211a68e41ab..c40fe47c8a4 100644 --- a/src/backend/access/nbtree/nbtutils.c +++ b/src/backend/access/nbtree/nbtutils.c @@ -1772,7 +1772,6 @@ _bt_killitems(IndexScanDesc scan) buf = _bt_getbuf(scan->indexRelation, so->currPos.currPage, BT_READ); latestlsn = BufferGetLSNAtomic(buf); - Assert(!XLogRecPtrIsInvalid(so->currPos.lsn)); Assert(so->currPos.lsn <= latestlsn); if (so->currPos.lsn != latestlsn) { -- 2.47.3