Re: bt_index_parent_check and concurrently build indexes

From: Álvaro Herrera <alvherre(at)kurilemu(dot)de>
To: Donghang Lin <donghanglin(at)gmail(dot)com>
Cc: Mihail Nikalayeu <mihailnikalayeu(at)gmail(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>, Michael Paquier <michael(at)paquier(dot)xyz>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Andrey Borodin <amborodin86(at)gmail(dot)com>, Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>
Subject: Re: bt_index_parent_check and concurrently build indexes
Date: 2025-12-05 10:44:10
Message-ID: 202512051022.v256jprxxclf@alvherre.pgsql
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

On 2025-Dec-04, Donghang Lin wrote:

> Hi Álvaro,
>
> Thanks for looking at it. The test in the commit still fails back to 14.
> I think it should be backported to 14 and up.

You're correct that the bug is older. I'm not sure about backporting
the fix to 16 and earlier though, because it depends on BtreeCheckState
having the snapshot member which was only added in commit 5ae2087202af.
It's not a difficult patch -- attached.

I was being cautious and under the impression that the bug had never
been actually encountered by users, but I just noticed that in your
reply from 2 Jun 2025 you mentioned hitting this problem. So maybe we
should bite the bullet ...

Is anybody against backpatching this to 14-16?

(One thing I realized is that the comment for BtreeCheckState->snapshot
says that it's used for the uniqueness test only, but that's no longer
the case. So that needs fixed ...)

--
Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/

Attachment Content-Type Size
0001-amcheck-Fix-snapshot-usage-in-bt_index_parent_check.patch text/x-diff 8.5 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2025-12-05 11:16:55 Re: libpq: Process buffered SSL read bytes to support records >8kB on async API
Previous Message Jelte Fennema-Nio 2025-12-05 10:41:00 Re: [PATCH] Add enable_copy_program GUC to control COPY PROGRAM