From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael@paquier.xyz>
Cc: exclusion@gmail.com
Cc: pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #18499: Reindexing spgist index concurrently triggers Assert("TransactionIdIsValid(state->myXid)")
Date: Sun, 16 Jun 2024 19:30:46 -0400
Message-ID: <3050563.1718580646@sss.pgh.pa.us> (raw)
In-Reply-To: <Zm90GkbGq16gjJy0@paquier.xyz>
References: <18499-8a519c280f956480@postgresql.org>
<428421.1717887173@sss.pgh.pa.us>
<3030961.1718570047@sss.pgh.pa.us>
<3045795.1718578372@sss.pgh.pa.us>
<Zm90GkbGq16gjJy0@paquier.xyz>
Michael Paquier <michael@paquier.xyz> writes:
> On Sun, Jun 16, 2024 at 06:52:52PM -0400, Tom Lane wrote:
>> ... not sure there's a nice way for spginsert() to know whether it's
>> being invoked in REINDEX CONCURRENTLY or a normal INSERT/UPDATE
>> query. Can we trust indexInfo->ii_Concurrent for that?
> I am not sure to understand the redirection part for spgist, but
> except if I am missing something, we already rely on ii_Concurrent for
> other index AMs like BRIN paths to check if we are dealing with a
> concurrent build path or not. index_concurrently_build() is used
> by both CIC and REINDEX CONCURRENTLY, where the flag is set after a
> BuildIndexInfo().
Right. I was thinking that CIC wouldn't reach spginsert(), rather
spgbuild(), but it does feel a bit rickety. A separate flag would
be better.
On the whole I'm inclined to stick with the patch as I have it.
Maybe somebody would like to investigate this idea as an improvement
for v18 or later.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-bugs@postgresql.org
Cc: tgl@sss.pgh.pa.us, michael@paquier.xyz, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Subject: Re: BUG #18499: Reindexing spgist index concurrently triggers Assert("TransactionIdIsValid(state->myXid)")
In-Reply-To: <3050563.1718580646@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox