Re: BUG #19082: Failing assert in index scan

Álvaro Herrera <alvherre@kurilemu.de>

From: Álvaro Herrera <alvherre@kurilemu.de>
To: postgresql@zr40.nl, pgsql-bugs@lists.postgresql.org
Cc: Peter Geoghegan <pg@bowt.ie>
Date: 2025-10-10T11:14:19Z
Lists: pgsql-bugs

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Remove overzealous _bt_killitems assertion.

  2. Make _bt_killitems drop pins it acquired itself.

On 2025-Oct-10, PG Bug reporting form wrote:

> Last week, I've noticed a crash due to a failed assertion that was
> consistently being triggered by an application every 10 seconds. Here's the
> log:
> 
> ---
> TRAP: failed Assert("!XLogRecPtrIsInvalid(so->currPos.lsn)"), File:
> "./build/../src/backend/access/nbtree/nbtutils.c", Line: 1782, PID: 394782
> postgres: mastodon mastodon_production [local]
> SELECT(ExceptionalCondition+0x75) [0x55f9c3027ea5]

AFAICS this assertion is new as of commit c7f25feb3862.  Peter?

I find it rather odd that you're running a production instance compiled
with assertions enabled, though.  They have a considerable impact on
performance, and should be used for development or testing only, not
production.  I would recommend to recompile with assertions disabled.
Also, it might well be that the assertion is buggy, and that nothing
would go wrong if that assertion is removed and just let the `if` test
below handle the case.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/