Re: Suggestion to add --continue-client-on-abort option to pgbench

Yugo Nagata <nagata@sraoss.co.jp>

From: Yugo Nagata <nagata@sraoss.co.jp>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Rintaro Ikeda <ikedarintarof@oss.nttdata.com>, Jakub Wartak <jakub.wartak@enterprisedb.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, "slpmcf@gmail.com" <slpmcf@gmail.com>, "boekewurm+postgres@gmail.com" <boekewurm+postgres@gmail.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Srinath Reddy Sadipiralla <srinath2133@gmail.com>, Dilip Kumar <dilipbalaut@gmail.com>
Date: 2025-09-26T01:29:32Z
Lists: pgsql-hackers
On Fri, 26 Sep 2025 00:03:06 +0900
Fujii Masao <masao.fujii@gmail.com> wrote:

> On Thu, Sep 25, 2025 at 4:22 PM Yugo Nagata <nagata@sraoss.co.jp> wrote:
> > I've attached updated patches.
> 
> Thanks for updating the patches!
> 
> About 0001: you mentioned that the lost error message issue occurs in
> pipeline mode.
> Just to confirm, are you sure it never happens in non-pipeline mode?
> From a quick look,
> readCommandResponse() seems to have this problem regardless of whether pipeline
> mode is used.
> 
> If it can also happen outside pipeline mode, maybe we should split this from
> the assertion failure fix, since they'd need to be backpatched to
> different branches.

I could not find a code path that resets the error state before reporting in
non-pipeline mode, since it is typically reset when starting to send a query.
However, referencing an error message after another PQgetResult() does not seem
like a good idea in general, so I agree with splitting the patch.

I'll submit updated patches soon.

Regards,
Yugo Nagata


-- 
Yugo Nagata <nagata@sraoss.co.jp>



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 assertion failure with multiple \syncpipeline in pipeline mode.

  2. pgbench: Add --continue-on-error option.

  3. Fix "inconsistent DLL linkage" warning on Windows MSVC

  4. pgbench: Fix error reporting in readCommandResponse().

  5. pgbench: Fix assertion failure with retriable errors in pipeline mode.

  6. Allow pgbench to retry in some cases.