Re: Fix slot synchronization with two_phase decoding enabled

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, shveta malik <shveta.malik@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Nisha Moond <nisha.moond412@gmail.com>
Date: 2025-04-29T10:56:36Z
Lists: pgsql-hackers
On Tue, Apr 29, 2025 at 3:01 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
>
> Your fix looks good to me. Is it worth considering putting an
> assertion to verify if new two_phase_at is equal to or greater than
> confirmed_lsn (or at least it doesn't go backward), when syncing
> two_phase_at?
>

Yeah, it makes sense. But the condition should be reverse
(two_phase_at should be less than or equal to confirmed_flush). I have
done that, changed a few comments, and committed the patch.

-- 
With Regards,
Amit Kapila.



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.