Re: BUG #17821: Assertion failed in heap_update() due to heap pruning - Mailing list pgsql-bugs

From Alexander Lakhin
Subject Re: BUG #17821: Assertion failed in heap_update() due to heap pruning
Date
Msg-id 2a203fd8-e9c8-5f5d-40f8-707848905a1a@gmail.com
Whole thread Raw
In response to Re: BUG #17821: Assertion failed in heap_update() due to heap pruning  (Alexander Lakhin <exclusion@gmail.com>)
Responses Re: BUG #17821: Assertion failed in heap_update() due to heap pruning
List pgsql-bugs
Hello,

07.10.2023 11:00, Alexander Lakhin wrote:
>
> I've encountered another case of that assertion failure (this time with pg_statistic):

That second case is not reproduced anymore, after ad98fb142, but the first
is still actual.

I also discovered another one, with pg_subscription:
echo "
CREATE ROLE su SUPERUSER;
CREATE SUBSCRIPTION sub CONNECTION 'dbname=nonexisting'
   PUBLICATION pub WITH (connect = false);
" | psql

for ((i=1;i<=20;i++)); do
   echo "iteration $i"

   for ((k=1;k<=100;k++)); do
     for ((j=1;j<=200;j++)); do echo "
ALTER SUBSCRIPTION sub SET (synchronous_commit = false);
     "; done | psql >/dev/null 2>&1 &

     for ((j=1;j<=200;j++)); do echo "
ALTER SUBSCRIPTION sub OWNER TO su;
ALTER SUBSCRIPTION sub SET (slot_name = NONE);
     "; done | psql >/dev/null 2>&1 &
     wait
   done

   grep 'TRAP:' server.log && break;
done

This script fails for me as below:
...
iteration 5
TRAP: failed Assert("ItemIdIsNormal(lp)"), File: "heapam.c", Line: 3296, PID: 388093

(sed 's/minfree = Max(minfree, BLCKSZ \/ 10)/minfree = Max(minfree, BLCKSZ \/1)/'
-i src/backend/access/heap/pruneheap.c
is highly recommended for reproducing)

Melanie and Heikki, as you have been working on pruning over the recent
months, perhaps this defect could be of interest to you...

Best regards,
Alexander



pgsql-bugs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: BUG #18377: Assert false in "partdesc->nparts >= pinfo->nparts", fileName="execPartition.c", lineNumber=1943
Next
From: Melanie Plageman
Date:
Subject: Re: BUG #17821: Assertion failed in heap_update() due to heap pruning