Re: Logical Replication of sequences

From: vignesh C <vignesh21(at)gmail(dot)com>
To: Shlok Kyal <shlok(dot)kyal(dot)oss(at)gmail(dot)com>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, Shinya Kato <shinya11(dot)kato(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Euler Taveira <euler(at)eulerto(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, "Jonathan S(dot) Katz" <jkatz(at)postgresql(dot)org>
Subject: Re: Logical Replication of sequences
Date: 2026-01-19 13:06:34
Message-ID: CALDaNm1Fbu-HVHTm3ToGnJNXGVYsFvB0JvPZ0D+X4jWxyKFCZQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, 19 Jan 2026 at 14:54, vignesh C <vignesh21(at)gmail(dot)com> wrote:
>
> On Wed, 24 Dec 2025 at 12:15, Shlok Kyal <shlok(dot)kyal(dot)oss(at)gmail(dot)com> wrote:
> >
>
> There is a buildfarm failure in fairywren at [1].
> The failure occurs when a sequence is dropped concurrently while
> pg_get_sequence_data() is being executed as part of the copy_sequences
> query. This can be reproduced by pausing execution inside
> pg_get_sequence_data() and dropping the sequence in parallel. In such
> a case, the function returns NULL values for last_value, which is not
> currently expected by the subscriber side and results in a failure.
>
> I am analyzing this scenario further to identify a proper solution. I
> will share the detailed analysis and proposed fix in a subsequent
> email.

pg_get_sequence_data() internally uses try_relation_open() rather than
relation_open(). As a result, if the target sequence no longer exists
at the time of access, the function does not raise an error and
instead returns NULLs for the sequence state columns. The sequence
sync worker code previously assumed these columns to be non NULL and
asserted accordingly. This assumption does not hold in the presence of
concurrent DDL. The patch updates the sequence sync logic to
explicitly check for NULL values returned from pg_get_sequence_data().
If any of the required sequence state fields are NULL, the sequence
sync worker skips processing that sequence to identify and report the
missing sequences. The attached patch has the changes for the same.

Regards,
Vignesh

Attachment Content-Type Size
v1-0001-Handle-concurrent-sequence-drop-during-sequence-s.patch application/octet-stream 2.5 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Álvaro Herrera 2026-01-19 13:09:48 Re: [PATCH] psql: add \dcs to list all constraints
Previous Message Vitaly Davydov 2026-01-19 12:43:16 Deadlock detector fails to activate on a hot standby replica