From c160fd46910e7ad9490578b453847f06ffb3f5ee Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Fri, 10 Oct 2025 14:52:19 -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 5873b61acfb..f81afbf7b3b 100644 --- a/src/backend/access/nbtree/nbtutils.c +++ b/src/backend/access/nbtree/nbtutils.c @@ -1779,7 +1779,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) {