Re: Fix assert failure when decoding XLOG_PARAMETER_CHANGE on primary

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Masahiko Sawada <sawada.mshk@gmail.com>
Cc: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2025-02-24T11:31:30Z
Lists: pgsql-hackers
On Wed, Feb 12, 2025 at 5:22 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Wed, Feb 12, 2025 at 1:16 AM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> >
> >
> > Agreed, I'm fine with leaving InRecovery in this condition. I think
> > the point is whether we should add StandbyMode to the condition or
> > not. I think if we do that, we would end up with the same error in the
> > above scenario I described. So does the following condition make
> > sense?
> >
> >         if (InRecovery &&
> >             xlrec.wal_level < WAL_LEVEL_LOGICAL &&
> >             wal_level >= WAL_LEVEL_LOGICAL)
> >             InvalidateObsoleteReplicationSlots(RS_INVAL_WAL_LEVEL,
> >                                                0, InvalidOid,
> >                                                InvalidTransactionId);
> >
>
> This will still be true for crash-recovery as the InRecovery flag will
> be true for that case as well. I think we should go with your v2 patch
> approach for HEAD and back-branches.
>

Any opinion on how to proceed here?

-- 
With Regards,
Amit Kapila.



Commits

  1. Fix assertion when decoding XLOG_PARAMETER_CHANGE on promoted primary.