Re: pgbench: make verbose error messages thread-safe

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-24T08:07:27Z
Lists: pgsql-hackers
On Fri, Apr 24, 2026 at 03:26:03PM +0900, Fujii Masao wrote:
> Attached patch fixes this issue by changing printVerboseErrorMessages()
> to use a local PQExpBufferData instead of a static one. Thoughts?

That looks like an oversight of 4a39f87acd6e to me.  A static buffer
in this context is not adapted.

> Since this issue was introduced in v15, the patch should be
> backpatched to v15 if accepted.

This forces a new allocation for each message printed vs a set of
resets after one allocation is done.  This change is not going to be
entirely free as done in the patch, so should we worry about that?
Perhaps it would be cheaper to allocate a PQExpBuffer in each CState,
and just reuse it in this routine?
--
Michael

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pgbench: fix verbose error message corruption with multiple threads