From ca0c9390865dbd5a7324cf390f696ade33494974 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Fri, 10 Oct 2025 14:52:17 -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 96dd1a1353f..d3c4318e21f 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) { -- 2.47.3