Re: Shutdown indefinitely stuck due to unflushed FPI_FOR_HINT record

Alexander Law <exclusion@gmail.com>

From: Alexander Lakhin <exclusion@gmail.com>
To: Fujii Masao <masao.fujii@gmail.com>, Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2026-03-05T06:30:00Z
Lists: pgsql-hackers
Hello Anthonin and Masao-san,

04.03.2026 19:46, Fujii Masao wrote:
> On Wed, Mar 4, 2026 at 5:52 PM Anthonin Bonnefoy
> <anthonin.bonnefoy@datadoghq.com> wrote:
>> I've updated the patch with this approach.
> Thanks for updating the patch!
>
> Barring any objections, I will commit the patch and backpatch it to
> all supported branches.

Thank you for working on this!

It looks like the same issue was discovered and discussed before, but that
time without a final fix: [1]. I tried v5 patch with my
099_walsender_stop.pl test and it executed 100 internal iterations
successfully, while without the patch it failed for me on iterations 6, 8, 5.

[1] https://www.postgresql.org/message-id/flat/f15d665f-4cd1-4894-037c-afdbe369287e%40gmail.com

Best regards,
Alexander



Commits

  1. Fix WAL flush LSN used by logical walsender during shutdown

  2. Use GetXLogInsertEndRecPtr in gistGetFakeLSN

  3. Fix publisher shutdown hang caused by logical walsender busy loop.