| From: | Anthonin Bonnefoy <anthonin(dot)bonnefoy(at)datadoghq(dot)com> |
|---|---|
| To: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Shutdown indefinitely stuck due to unflushed FPI_FOR_HINT record |
| Date: | 2026-03-02 10:38:06 |
| Message-ID: | CAO6_Xqp+ADb6KZVWLMALu3xmwVUEO8S1EiCnp38mG6BrHrEnuA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Feb 26, 2026 at 5:20 PM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> Thanks for reporting this issue and for the patch!
>
> I was able to reproduce the problem on master.
Thanks for the confirmation!
> I'm a bit concerned that this approach could cause walwriter to attempt
> WAL writes more aggressively in some cases, adding overhead during
> normal processing. If the goal is only to prevent shutdown from getting stuck,
> instead, would it be sufficient for ShutdownXLOG() to call
> XLogSetAsyncXactLSN() just before WalSndWaitStopping()?
I did something similar with the first version using
XLogFlush(WriteRqstPtr), and it indeed fixes the shutdown issue.
Though I was under the impression that calling XLogSetAsyncXactLSN()
in RecordTransactionAbort was a better approach, as it is similar to
reporting the latest async abort. You may have a large backlog of
records, like selects pruning a lot of pages and timing out, which the
next commit will have to flush. Notifying the walwriter allows it to
flush those records it can.
Maybe for the context of a backport, patching ShutdownXLOG has the
benefit of minimising the amount of changes and risks?
I've updated the RecordTransactionAbort approach for now, with a small
optimization. XactLastRecEnd may be 0 if nothing was written, and we
can skip the unnecessary spinlocks in this case.
Regards,
Anthonin Bonnefoy
| Attachment | Content-Type | Size |
|---|---|---|
| v3-0001-Fix-stuck-shutdown-due-to-unflushed-records.patch | application/octet-stream | 2.7 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Kapila | 2026-03-02 10:48:13 | Re: Skipping schema changes in publication |
| Previous Message | Álvaro Herrera | 2026-03-02 10:34:11 | Re: Reject ADD CONSTRAINT NOT NULL if name mismatches existing domain not-null constraint |