Re: BUG #18158: Assert in pgstat_report_stat() fails when a backend shutting down with stats pending

Xuneng Zhou <xunengzhou@gmail.com>

From: Xuneng Zhou <xunengzhou@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Alexander Lakhin <exclusion@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2026-05-14T07:19:34Z
Lists: pgsql-bugs
On Wed, May 13, 2026 at 2:55 PM Michael Paquier <michael@paquier.xyz> wrote:
>
> On Wed, May 13, 2026 at 08:46:25AM +0800, Xuneng Zhou wrote:
> > Thanks for reporting this. It appears like backpatching an equivalent
> > of 87a6690cc69 to REL_17/REL_16 would resolve this issue.
>
> FWIW, I fear such a change in the stable branches based on its
> invasiveness, particularly because the area of the code dealing with
> shutdown sequences has been reworked a lot lately as far as I recall.
>
> I am seriously wondering if we should just let it go and remove the
> assertion on v15~v17.  It's not perfect, of course, but I value much
> more this assertion in terms of any future work that can be done with
> pgstats, not in terms of what we could detect for bug fixes.

I agree that applying the change wholesale could be too invasive. If
we decide not to address the ordering issue, removing this assertion
seems reasonable, since the non-assert path does not actually provide
the required guarantee.

-- 
Regards,
Xuneng Zhou
HighGo Software Co., Ltd.



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Lift shutdown assertion in pgstats for WAL senders