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

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp>
Cc: Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, Rintaro Ikeda <ikedarintarof(at)oss(dot)nttdata(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, "slpmcf(at)gmail(dot)com" <slpmcf(at)gmail(dot)com>, "boekewurm+postgres(at)gmail(dot)com" <boekewurm+postgres(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Srinath Reddy Sadipiralla <srinath2133(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>
Subject: Re: Suggestion to add --continue-client-on-abort option to pgbench
Date: 2025-09-19 10:21:29
Message-ID: CAHGQGwGWQMOzNkQs-LmpDHdNC0h8dmAuUMRvZrEntQi5a-b=Kg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Sep 19, 2025 at 11:43 AM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>
> On Thu, Sep 18, 2025 at 4:20 PM Yugo Nagata <nagata(at)sraoss(dot)co(dot)jp> wrote:
> >
> > On Thu, 18 Sep 2025 14:37:29 +0900
> > Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> >
> > > On Thu, Sep 18, 2025 at 10:22 AM Yugo Nagata <nagata(at)sraoss(dot)co(dot)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!

I've updated the 0001 patch based on the comments.
The revised version is attached.

While testing, I found that running pgbench with --continue-on-error and
pipeline mode triggers the following assertion failure. Could this be
a bug in the patch?

---------------------------------------------------
$ cat pipeline.pgbench
\startpipeline
DO $$
BEGIN
PERFORM pg_sleep(3);
PERFORM pg_terminate_backend(pg_backend_pid());
END $$;
\endpipeline

$ pgbench -n --debug --verbose-errors -f pipeline.pgbench -c 2 -t 4 -M
extended --continue-on-error
...
Assertion failed:
(sql_script[st->use_file].commands[st->command]->type == 1), function
commandError, file pgbench.c, line 3081.
Abort trap: 6
---------------------------------------------------

When I ran the same command without --continue-on-error,
the assertion failure did not occur.

Regards,

--
Fujii Masao

Attachment Content-Type Size
v11-0001-Add-continue-on-error-option.patch application/octet-stream 14.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nazir Bilal Yavuz 2025-09-19 10:23:48 Re: Meson0.57.2 setup failed with option -Duuid=ossp
Previous Message Álvaro Herrera 2025-09-19 09:36:08 Re: REPACK and naming