Re: Fix slot synchronization with two_phase decoding enabled

Ajin Cherian <itsajin@gmail.com>

From: Ajin Cherian <itsajin@gmail.com>
To: Nisha Moond <nisha.moond412@gmail.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, shveta malik <shveta.malik@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-06-11T10:15:42Z
Lists: pgsql-hackers
On Fri, Jun 6, 2025 at 5:07 PM Nisha Moond <nisha.moond412@gmail.com> wrote:
>
>
> Attached v18 patch.
>  - patch-001: modified error messages as suggested above.
>  - patch-002: improved pg_dump docs as per Shveta's off-list suggestions.
>
> [1] https://www.postgresql.org/message-id/CAA4eK1%2BB067G8mUJzKUEjc5KSkYq6z0utTaHey-qeRt%2BnZTNJg%40mail.gmail.com
>
> --
> Thanks,
> Nisha

Hi Nisha,

Some comments.

Patch 0001
1. Commit message

from "two_phase enables slots." to "two_phase enabled slots"

2.
+
+     <para>
+      When a subscription's
+      <link linkend="sql-createsubscription-params-with-two-phase"><literal>two_phase</literal></link>
+      is in the pending state, setting <literal>failover</literal> to
true is not
+      permitted. Once

The term "subscription's two_phase" sounds a bit vague here.
Referring https://www.postgresql.org/docs/17/sql-createsubscription.html
and https://www.postgresql.org/docs/current/catalog-pg-subscription.html
two_phase is referred to both as the "internal state" as well as the
"mode" of the subscription.

Probably rephrase it to - "When a subscription's internal two_phase
mode is in the pending state, setting failover to true is not
permitted. See column subtwophasestate of pg_subscription to know the
actual internal state of the two-phase mode" (with appropriate tags
and reference links)

Patch 0002

1. Commit message

Typo: change "subscrption" to "subscription"

regards,
Ajin Cherian
Fujitsu Australia



Commits

  1. Don't retreat slot's confirmed_flush LSN.

  2. Fix assertion failure during decoding from synced slots.

  3. Fix xmin advancement during fast_forward decoding.

  4. Fix slot synchronization for two_phase enabled slots.

  5. Again match pg_user_mappings to information_schema.user_mapping_options.