Re: Suggestion to add --continue-client-on-abort option to pgbench
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Yugo Nagata <nagata@sraoss.co.jp>
Cc: Jakub Wartak <jakub.wartak@enterprisedb.com>, Rintaro Ikeda <ikedarintarof@oss.nttdata.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-19T02:43:28Z
Lists: pgsql-hackers
On Thu, Sep 18, 2025 at 4:20 PM Yugo Nagata <nagata@sraoss.co.jp> wrote:
>
> On Thu, 18 Sep 2025 14:37:29 +0900
> Fujii Masao <masao.fujii@gmail.com> wrote:
>
> > On Thu, Sep 18, 2025 at 10:22 AM Yugo Nagata <nagata@sraoss.co.jp> wrote:
> > > That makes sense. How about rewriting this like:
> > >
> > > However, if the --continue-on-error option is specified and the error occurs in
> > > an SQL command, the client does not abort and proceeds to the next
> > > transaction regardless of the error. These cases are reported as "other failures"
> > > in the output. Note that if the error occurs in a meta-command, the client will
> > > still abort even when this option is specified.
> >
> > How about phrasing it like this, based on your version?
> >
> > ----------------------------
> > A client's run is aborted in case of a serious error; for example, the
> > connection with the database server was lost or the end of script was reached
> > without completing the last transaction. The client also aborts
> > if a meta-command fails, or if an SQL command fails for reasons other than
> > serialization or deadlock errors when --continue-on-error is not specified.
> > With --continue-on-error, the client does not abort on such SQL errors
> > and instead proceeds to the next transaction. These cases are reported
> > as "other failures" in the output. If the error occurs in a meta-command,
> > however, the client still aborts even when this option is specified.
> > ----------------------------
>
> I'm fine with that. This version is clearer.
Thanks for checking!
Also I'd like to share the review comments for 0002 and 0003.
Regarding 0002:
- TSTATUS_OTHER_ERROR,
+ TSTATUS_UNKNOWN_ERROR,
You did this rename to avoid confusion with other_sql_errors.
I see the intention, but I'm not sure if this concern is really valid
and if the rename adds much value. Also, TSTATUS_UNKNOWN_ERROR
might be mistakenly assumed to be related to PQTRANS_UNKNOWN,
even though they aren't related...
But if we agree with this change, I think it should be folded into 0001,
since there's no strong reason to keep it separate.
Regarding 0003:
- pg_log_error("client %d script %d command %d query %d: expected one
row, got %d",
- st->id, st->use_file, st->command, qrynum, 0);
+ commandFailed(st, "gset", psprintf("expected one row, got %d", 0));
The change to use commandFailed() seems to remove
the "query %d" detail that the current pg_log_error() call reports.
Is it OK to lose that information?
Regards,
--
Fujii Masao
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
pgbench: Fix assertion failure with multiple \syncpipeline in pipeline mode.
- 5bc251b28839 17.8 landed
- 00e64e35c8bd 18.2 landed
- 4aa0ac05765e 19 (unreleased) landed
-
pgbench: Add --continue-on-error option.
- 0ab208fa505c 19 (unreleased) landed
-
Fix "inconsistent DLL linkage" warning on Windows MSVC
- a3ea5330fcf4 19 (unreleased) cited
-
pgbench: Fix error reporting in readCommandResponse().
- 7d7e81d1e6b8 13.23 landed
- cb21e1f92fb3 14.20 landed
- bdccb6302871 15.15 landed
- 36c4d30c8f24 16.11 landed
- a912118c6055 17.7 landed
- 29aabbc43269 18.1 landed
- 19d4f9ffc207 19 (unreleased) landed
-
pgbench: Fix assertion failure with retriable errors in pipeline mode.
- 704f517711b4 15.15 landed
- 8b2e290bde21 16.11 landed
- f39d9164b70a 17.7 landed
- c736808e03b7 18.1 landed
- 8bb174295e89 19 (unreleased) landed
-
Allow pgbench to retry in some cases.
- 4a39f87acd6e 15.0 cited