Re: Slot's restart_lsn may point to removed WAL segment after hard restart unexpectedly

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>
Cc: Dilip Kumar <dilipbalaut(at)gmail(dot)com>, "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Vitaly Davydov <v(dot)davydov(at)postgrespro(dot)ru>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Alexander Lakhin <exclusion(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, "tomas(at)vondra(dot)me" <tomas(at)vondra(dot)me>, vignesh C <vignesh21(at)gmail(dot)com>
Subject: Re: Slot's restart_lsn may point to removed WAL segment after hard restart unexpectedly
Date: 2025-06-26 14:48:45
Message-ID: CAPpHfdvW1Cbo65UfWcO2uUCXnWosavL9f_UbNRAecTQH4o_RDA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dear Kuroda-san,

On Thu, Jun 26, 2025 at 6:46 AM Hayato Kuroda (Fujitsu)
<kuroda(dot)hayato(at)fujitsu(dot)com> wrote:
>
> Dear Alexander,
> >
> > Good idea. But I think we should associate the "updated" flag
> > directly to the fact that one slot (no matter logical or physical)
> > changed its last_saved_restart_lsn. See the attached patch. I'm
> > going to push it if no objections.
>
> + /*
> + * Track if we're going to update slot's last_saved_restart_lsn.
> + * We need this to know if we need to recompute the required LSN.
> + */
> + if (s->last_saved_restart_lsn != s->data.restart_lsn)
> + last_saved_restart_lsn_updated = true;
>
> I feel no need to set to true if last_saved_restart_lsn_updated is already true.
> Other than that it's OK for me.

Thank you for your feedback.

Regarding last_saved_restart_lsn_updated, I think the opposite. I
think we should check if last_saved_restart_lsn_updated is set already
only if it could promise us some economy of resources. In our case
the main check only compares two fields of slot. And that fields are
to be accessed anyway. So, we are not going to save any RAM accesses.
Therefore, checking for last_saved_restart_lsn_updated seems like
unnecessary code complication (and I don't see we're doing that in
other places). So, I'm going to push this patch "as is".

------
Regards,
Alexander Korotkov
Supabase

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2025-06-26 15:03:43 Re: Extend COPY FROM with HEADER <integer> to skip multiple lines
Previous Message Masahiko Sawada 2025-06-26 14:25:15 Re: Simplify VM counters in vacuum code