Re: bt_index_parent_check and concurrently build indexes - Mailing list pgsql-hackers

From Peter Geoghegan
Subject Re: bt_index_parent_check and concurrently build indexes
Date
Msg-id CAH2-WzmcFDK2OzziTgdHxPTmaRQmSFLoDjS-C06uWGTsXibx9g@mail.gmail.com
Whole thread Raw
List pgsql-hackers
On Mon, Dec 9, 2024 at 3:51 PM Michail Nikolaev
<michail.nikolaev@gmail.com> wrote:
> After some time, I managed to find a way to reproduce the issue. It turns out that bt_index_parent_check is not
suitablefor validating indexes built concurrently. 

Good catch.

> I’ve attached a patch that reproduces the issue (it incorrectly reports the index as invalid, even though it is
actuallyvalid). 
>
> I’m unsure of the best way to address this issue, but here are some possible options:
> * Simply update the documentation.
> * Issue a WARNING if !tupleIsAlive.
> * Modify bt_index_parent_check to use an MVCC snapshot for the heap scan

Offhand, I think that using an MVCC snapshot would make the most sense.

It's not as if there is a big benefit to not doing so with
bt_index_parent_check. My recollection is that we did it this way
because it was as close as possible to the CREATE INDEX code that
heapallindexed verification was loosely based on.

--
Peter Geoghegan



pgsql-hackers by date:

Previous
From: Sergei Kornilov
Date:
Subject: Re: Track the amount of time waiting due to cost_delay
Next
From: Andres Freund
Date:
Subject: Re: Hot standby queries see transient all-zeros pages