Re: Shutdown indefinitely stuck due to unflushed FPI_FOR_HINT record
Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
From: Anthonin Bonnefoy <anthonin.bonnefoy@datadoghq.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2026-03-05T08:40:25Z
Lists: pgsql-hackers
Hi Alexander, On Thu, Mar 5, 2026 at 7:30 AM Alexander Lakhin <exclusion@gmail.com> wrote: > Hello Anthonin and Masao-san, > 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 Thanks for the tests and the additional context. Looking at the the thread, the latest patch provided a similar solution using: + XLogFlush(GetInsertRecPtr()); So it was relying on GetInsertRecPtr() instead of GetXLogInsertRecPtr(). As mentioned in the thread, GetInsertRecPtr() only returns the position of the last full xlog page, meaning it doesn't fix the issue we have where the last partial page contains a continuation record. Testing the XLogFlush(GetInsertRecPtr()) patch with my script, I still get the shutdown stuck issue. Using GetXLogInsertRecPtr() is required to make sure the last partial page is correctly flushed. Regards, Anthonin Bonnefoy
Commits
-
Fix WAL flush LSN used by logical walsender during shutdown
- f15471464650 14.23 landed
- fa9f2e317562 15.18 landed
- da21ecf5798c 16.14 landed
- 8ee536c89517 17.10 landed
- 9804981386a0 18.4 landed
- d927b4bd97c8 19 (unreleased) landed
-
Use GetXLogInsertEndRecPtr in gistGetFakeLSN
- b1f14c967202 19 (unreleased) cited
-
Fix publisher shutdown hang caused by logical walsender busy loop.
- 3bf6f22ce151 14.23 landed
- 42734f296615 15.18 landed
- 82935467a033 16.14 landed
- bbbc0888b356 17.10 landed
- 3eb2fecdbbfc 18.4 landed
- 6eedb2a5fd88 19 (unreleased) landed