Re: Failing assertion while taking a restartpoint during crash recovery

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Imran Zaheer <imran(dot)zhir(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Failing assertion while taking a restartpoint during crash recovery
Date: 2026-08-15 11:10:02
Message-ID: CAHGQGwFJqLoKoiL2raJ22ZxUzpDxAd7baDvGFP=tkfWNMJ5X9Q@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Aug 15, 2026 at 4:57 PM Imran Zaheer <imran(dot)zhir(at)gmail(dot)com> wrote:
>
> Hi
>
> While doing some benchmarking related to my work with the recovery
> pipelining [1], I found that the checkpointer fails when trying to
> take a time-based restartpoint during the crash recovery.
>
> Right now I am facing this assertion failure.

Thanks for the report! I was also able to reproduce the assertion failure.

> It looks like the checkpointer is not aware of whether hot standby
> initialization was done during startup, which happens only in the case
> of ArchiveRecoveryRequested [2]. In this specific case, the
> checkpointer assumes hot standby initialization would have been done,
> so it tries to call TruncateSUBTRANS(). A simple fix is to add
> ArchiveRecoveryRequested to recovery shared memory XLogRecoveryCtl;
> then the checkpointer will simply skip TruncateSUBTRANS if archive
> recovery was not requested. I have attached my patch below.

I think it would be better and more robust to check directly whether
StartupSUBTRANS() has already been called, rather than checking
ArchiveRecoveryRequested, as in the attached patch.

Thoughts?

Regards,

--
Fujii Masao

Attachment Content-Type Size
v2-0001-Fix-checkpointer-restartpoint-assertion-failure.patch application/octet-stream 4.4 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bernd Reiß 2026-08-15 12:03:46 Re: missing possibility to use alternative translated month names in to_char function
Previous Message Bertrand Drouvot 2026-08-15 11:04:17 Re: basebackup: do not verify checksums on pages written before enabling checksums