Hi,
On 2026-03-13 10:00:00 +0200, Alexander Lakhin wrote:
> Hello Andres,
>
> 12.03.2026 00:40, Andres Freund wrote:
> > I pushed this and many of the later patches in the series. Here are updated
> > versions of the remaining changes. The last two previously were one commit
> > with "WIP" in the title. The first one has, I think, not had a lot of
> > review -
> > but it's also not a complicated change.
>
> I've discovered that starting from 82467f627, the following query:
> SET cpu_operator_cost = 1000;
> CREATE TABLE t (i INT);
> INSERT INTO T SELECT 1 FROM generate_series(1, 1000) a;
> CREATE INDEX hi on t USING HASH (i);
> DELETE FROM t WHERE i = 1;
> DELETE FROM t WHERE i = 1;
>
> triggers
> TRAP: failed Assert("BufferIsValid(buffer)"), File: "bufmgr.c", Line: 497,
> PID: 3942058
>
> #4 0x000079a60ae288ff in __GI_abort () at ./stdlib/abort.c:79
> #5 0x00005a68d9343eef in ExceptionalCondition
> (conditionName=conditionName@entry=0x5a68d93ac27d "BufferIsValid(buffer)",
> fileName=fileName@entry=0x5a68d93c99ef "bufmgr.c",
> lineNumber=lineNumber@entry=497) at assert.c:65
> #6 0x00005a68d91a18eb in GetPrivateRefCountEntry (do_move=true,
> buffer=<optimized out>) at bufmgr.c:497
> #7 SharedBufferBeginSetHintBits (lockstate=<synthetic pointer>,
> buf_hdr=0x79e5febbbc40, buffer=<optimized out>)
> at bufmgr.c:6830
> #8 BufferBeginSetHintBits (buffer=<optimized out>) at bufmgr.c:6931
> #9 0x00005a68d8e3c862 in _hash_kill_items (scan=<optimized out>) at
> hashutil.c:603
> #10 0x00005a68d8e3b7c3 in _hash_next (scan=0x5a68e735f938, dir=<optimized
> out>) at hashsearch.c:69
> #11 0x00005a68d8e616ce in index_getnext_tid (scan=scan@entry=0x5a68e735f938,
> direction=direction@entry=ForwardScanDirection)
> at indexam.c:647
> ...
> #25 0x00005a68d91eb4ad in exec_simple_query (query_string=0x5a68e7270120
> "DELETE FROM t WHERE i = 1;") at postgres.c:1277
> ...
>
> Could you please look at this?
Yea, it's a stupid small mistake. Alexander Kuzmenkov reported it late
afternoon yesterday, privately as I just noticed, and I was too tired to make
sure an added test wouldn't have stability issues.
Will fix in the next few hours.
Greetings,
Andres Freund