Re: A recent message added to pg_upgade - Mailing list pgsql-hackers

From vignesh C
Subject Re: A recent message added to pg_upgade
Date
Msg-id CALDaNm16x5oUW3Yx8aC-zDQd6YmJbrWuV1qgxA=vAVbMDm09iw@mail.gmail.com
Whole thread Raw
In response to Re: A recent message added to pg_upgade  (Dilip Kumar <dilipbalaut@gmail.com>)
Responses Re: A recent message added to pg_upgade
List pgsql-hackers
On Thu, 10 Jul 2025 at 11:47, Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> On Thu, Jul 10, 2025 at 11:18 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >
> > On Thu, Jul 10, 2025 at 11:11 AM vignesh C <vignesh21@gmail.com> wrote:
> > >
> > > On Wed, 9 Jul 2025 at 17:47, Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > > >
> > > > On Wed, Jul 9, 2025 at 5:29 PM Álvaro Herrera <alvherre@kurilemu.de> wrote:
> > > > >
> > > > > On 2025-Jul-09, Dilip Kumar wrote:
> > > > >
> > > > > > On Wed, Jul 9, 2025 at 9:07 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > > > >
> > > > > > > After further consideration, I believe your proposed method is
> > > > > > > superior to forcing the max_slot_wal_keep_size to -1 via a check hook.
> > > > > > > The ultimate goal is to prevent WAL removal during a binary upgrade,
> > > > > > > and your approach directly addresses this issue rather than
> > > > > > > controlling it by forcing the GUC value.  I am planning to send a
> > > > > > > patch using this approach for both max_slot_wal_keep_size as well as
> > > > > > > for idle_replication_slot_timeout.
> > > > > >
> > > > > > PFA, with this approach.
> > > > >
> > > > > This indeed makes the whole thing a lot simpler and more direct than the
> > > > > original code, and solves this subthread's complaint.  It's a bit weird
> > > > > that slot.c and xlog.c now have to worry about IsBinaryUpgrade, but I
> > > > > don't feel any guilt about that.
> > > >
> > > > Thanks Alvaro for having a look.
> > > >
> > > > > I propose a few comment updates on top of your patch.
> > > >
> > > > This comment updates LGTM, so included in v3.
> > >
> > > The patch does not apply on the PG17 branch where the original issue
> > > was reported. I felt we should backbranch this up to PG17 where this
> > > was added.
> >
> > Right, it should be backported till 17, I will work on the patch and
> > send it soon.  Thanks for reporting.
> >
> PFA, patch for v17.

Few comments:
1) With the current approach invalidation will not happen for logical
replication slots during upgrade operation, I felt we could retain
this assertion just in case in the future it gets called from
elsewhere, do you feel this assertion should be removed in the new
approach too?
-               /*
-                * The logical replication slots shouldn't be invalidated as GUC
-                * max_slot_wal_keep_size is set to -1 and
-                * idle_replication_slot_timeout is set to 0 during the binary
-                * upgrade. See check_old_cluster_for_valid_slots()
where we ensure
-                * that no invalidated before the upgrade.
-                */
-               Assert(!(*invalidated && SlotIsLogical(s) && IsBinaryUpgrade));

2) Documentation
2.a) Currently slot invalidation will not happen during upgrade
because of idle_replication_slot_timeout, do you feel we should add a
note in documentation or is it ok not to mention?
2.b) Currently WAL removal will not happen during upgrade because of
max_slot_wal_keep_size, should we add a note about this.

Regards,
Vignesh



pgsql-hackers by date:

Previous
From: Bertrand Drouvot
Date:
Subject: Re: Improve LWLock tranche name visibility across backends
Next
From: jian he
Date:
Subject: Re: SQL:2023 JSON simplified accessor support