Re: BUG #18280: logical decoding build wrong snapshot for subtransactions - Mailing list pgsql-bugs

From Amit Kapila
Subject Re: BUG #18280: logical decoding build wrong snapshot for subtransactions
Date
Msg-id CAA4eK1L7FC3o6tqnXXimxTc7wmUXw2SWQ7bs2Fc_eBK2OpFSDg@mail.gmail.com
Whole thread Raw
In response to Re:BUG #18280: logical decoding build wrong snapshot for subtransactions  ("feichanghong" <feichanghong@qq.com>)
Responses Re: BUG #18280: logical decoding build wrong snapshot for subtransactions  (feichanghong <feichanghong@qq.com>)
RE: BUG #18280: logical decoding build wrong snapshot for subtransactions  ("Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>)
List pgsql-bugs
On Wed, Jan 10, 2024 at 7:56 PM feichanghong <feichanghong@qq.com> wrote:
>
> > SnapBuildXidSetCatalogChanges (introduced in 272248a) skipping the check for
> > the sub-transactions when the parent transaction has been marked as
> > containing catalog changes should be the root cause of the problem.
>
> My fix is to remove the ReorderBufferXidHasCatalogChanges condition from the SnapBuildXidSetCatalogChanges function.
Thisapproach has a false positive; the subtransactions that didn't change catalog to the snapshot are also added to the
commitlist. But that won't be a problem since we use snapshot built during decoding only to read system catalogs, as
272248a'scommit message says. 
>

Thanks, your analysis sounds correct to me. BTW, I think this should
occur only in 15 and 14 because in prior branches we didn't check if
the xact has catalog changes before marking its subxacts. From 16
onwards, we already accurately serialize the xacts and subxacts that
have made any catalog changes, so this problem shouldn't be there. Can
you please once verify the same?

--
With Regards,
Amit Kapila.



pgsql-bugs by date:

Previous
From: Richard Guo
Date:
Subject: Re: BUG #18305: Unexpected error: "WindowFunc not found in subplan target lists" triggered by subqueries
Next
From: feichanghong
Date:
Subject: Re: BUG #18280: logical decoding build wrong snapshot for subtransactions