pgsql: pgbench: fix verbose error message corruption with multiple thre

From: Fujii Masao <fujii(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: pgbench: fix verbose error message corruption with multiple thre
Date: 2026-05-14 03:32:41
Message-ID: E1wNMoT-000R9R-1e@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

pgbench: fix verbose error message corruption with multiple threads

When pgbench runs with multiple threads and verbose error reporting is
enabled (--verbose-errors), multiple clients can build verbose error
messages concurrently. Previously, a function-local static
PQExpBuffer was used for these messages, causing the buffer to be
shared across threads. This was not thread-safe and could result in
corrupted or incorrect log output.

Fix this by using a local PQExpBufferData instead of a static buffer.
This keeps verbose error messages correct during concurrent execution.

Backpatch to v15, where this issue was introduced.

Author: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
Reviewed-by: Michael Paquier <michael(at)paquier(dot)xyz>
Reviewed-by: Alex Guo <guo(dot)alex(dot)hengchen(at)gmail(dot)com>
Reviewed-by: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
Discussion: https://postgr.es/m/CAHGQGwER1AjGXpkKB9t9820NBhMQ_Ghv7=HsKeodUr3=SZsF4g@mail.gmail.com
Backpatch-through: 15

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/61f8a85a577fd0ea0bf924a88064187bed31eb48

Modified Files
--------------
src/bin/pgbench/pgbench.c | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Fujii Masao 2026-05-14 03:32:59 pgsql: pgbench: fix verbose error message corruption with multiple thre
Previous Message Nathan Bossart 2026-05-13 19:54:36 pgsql: Add several commits to .git-blame-ignore-revs.