Re: Fix slot synchronization with two_phase decoding enabled

shveta malik <shveta.malik@gmail.com>

From: shveta malik <shveta.malik@gmail.com>
To: Nisha Moond <nisha.moond412@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, shveta malik <shveta.malik@gmail.com>
Date: 2025-04-29T09:21:15Z
Lists: pgsql-hackers
On Mon, Apr 28, 2025 at 4:33 PM Nisha Moond <nisha.moond412@gmail.com> wrote:
>
> Please find the v9 patch, addressing the above and all other comments as well.
>

Thanks for the patch.

1)

+          The default is false. This option cannot be set together with
+          <literal>two_phase</literal> when creating the slot. However, once
+          the slot is created with <literal>two_phase=true</literal>, the
+          <literal>failover</literal> can be set to true after the
+          <literal>restart_lsn</literal> has advanced beyond its
+          <literal>two_phase_at</literal> value

As the user is not aware of two_phase_at, we shall change all the docs
to have a more user friendly explanation.

2)
 # Confirm that the invalidated slot has been dropped.
 $standby1->wait_for_log(
- qr/dropped replication slot "lsub1_slot" of database with OID
[0-9]+/, $log_offset);
+ qr/dropped replication slot "lsub1_slot" of database with OID [0-9]+/,
+ $log_offset);

I think this change is not needed.

thanks
Shveta



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.