Re: sequencesync worker race with REFRESH SEQUENCES
От
Amit Kapila
Тема
Re: sequencesync worker race with REFRESH SEQUENCES
Дата
Msg-id
CAA4eK1K8LD243UzHgVNCm4skJZ4UCjR3vowDhKp=cWnK5oBT-Q@mail.gmail.com
Ответ на
sequencesync worker race with REFRESH SEQUENCES (Noah Misch)
Список
Дерево обсуждения
sequencesync worker race with REFRESH SEQUENCES Noah Misch <noah@leadboat.com>
Re: sequencesync worker race with REFRESH SEQUENCES Amit Kapila <amit.kapila16@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES Noah Misch <noah@leadboat.com>
Re: sequencesync worker race with REFRESH SEQUENCES Amit Kapila <amit.kapila16@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES Noah Misch <noah@leadboat.com>
Re: sequencesync worker race with REFRESH SEQUENCES Tom Lane <tgl@sss.pgh.pa.us>
Re: sequencesync worker race with REFRESH SEQUENCES vignesh C <vignesh21@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES vignesh C <vignesh21@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES Tom Lane <tgl@sss.pgh.pa.us>
Re: sequencesync worker race with REFRESH SEQUENCES vignesh C <vignesh21@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES Amit Kapila <amit.kapila16@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES Noah Misch <noah@leadboat.com>
Re: sequencesync worker race with REFRESH SEQUENCES Amit Kapila <amit.kapila16@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES Noah Misch <noah@leadboat.com>
Re: sequencesync worker race with REFRESH SEQUENCES vignesh C <vignesh21@gmail.com>
RE: sequencesync worker race with REFRESH SEQUENCES "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Re: sequencesync worker race with REFRESH SEQUENCES vignesh C <vignesh21@gmail.com>
Re: sequencesync worker race with REFRESH SEQUENCES vignesh C <vignesh21@gmail.com>
RE: sequencesync worker race with REFRESH SEQUENCES "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Re: sequencesync worker race with REFRESH SEQUENCES Amit Kapila <amit.kapila16@gmail.com>
RE: sequencesync worker race with REFRESH SEQUENCES "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Re: sequencesync worker race with REFRESH SEQUENCES Amit Kapila <amit.kapila16@gmail.com>
On Fri, Jul 10, 2026 at 10:22 AM Noah Misch wrote:
>
> Fable 5 also wrote a lot more that neither it nor I confirmed by test case
> construction. I'm attaching the report; feel free to disregard. Finding-2
> about default_transaction_read_only=on looks worth fixing if true,
>
Agreed on Finding-2 as well. The issue is that the sequencesync
worker sets the value via SetSequence(), which calls
PreventCommandIfReadOnly("setval()") for non-temp sequences, so with
"default_transaction_read_only=on" on the subscriber the worker's
transaction is read-only and sequence sync fails and never reaches
READY. Table apply is unaffected only because
ExecSimpleRelationInsert() bypasses the executor's
ExecCheckXactReadOnly() path which is an undocumented, untested detail
rather than a stated guarantee.
For a minimal backpatch, we can force the sequencesync worker to run
read-write (e.g. set default_transaction_read_only=off for its session
at startup) so it matches table apply, plus a test that sets the GUC
on the subscriber and verifies sequences reach READY. Separately, it's
worth documenting that logical replication apply is exempt from
default_transaction_read_only — it's a per-transaction default meant
to guard user writes and never makes the node physically read-only —
and making that exemption explicit for all logical replication workers
so tables no longer rely on the bypass. What do you think?
--
With Regards,
Amit Kapila.
В списке pgsql-hackers по дате отправления
От: Akshay Joshi
Дата: