pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Noah Misch <noah@leadboat.com>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: Peter Geoghegan <pg@bowt.ie>
Cc: Andres Freund <andres@anarazel.de>
Subject: Re: conchuela timeouts since 2021-10-09 system upgrade
Date: Mon, 25 Oct 2021 16:59:42 -0400
Message-ID: <4170532.1635195582@sss.pgh.pa.us> (raw)
In-Reply-To: <B5CC4C8F-1B73-4359-AF68-26A08A17BCD1@yandex-team.ru>
References: <364BAA98-1A3F-4C39-B0D9-ED8C40EA902D@yandex-team.ru>
	<20210908064515.GA2496820@rfd.leadboat.com>
	<20210920044143.GA3414844@rfd.leadboat.com>
	<593C6C66-F19E-412A-9896-F1F5B272424A@yandex-team.ru>
	<20210925201012.GC4134968@rfd.leadboat.com>
	<20211017151205.GA2384251@rfd.leadboat.com>
	<9BA43784-E4A7-4638-900C-FC9868C388FA@yandex-team.ru>
	<20211019030212.GB3403374@rfd.leadboat.com>
	<20211024050028.GA3310519@rfd.leadboat.com>
	<64835CF9-D9AA-49BF-A685-01C23B1023C1@yandex-team.ru>
	<20211024161942.GB3945842@rfd.leadboat.com>
	<640FA6DC-A998-4499-B3B4-2773685B8C56@yandex-team.ru>
	<3792312.1635119599@sss.pgh.pa.us>
	<B5CC4C8F-1B73-4359-AF68-26A08A17BCD1@yandex-team.ru>

Andrey Borodin <x4mmm@yandex-team.ru> writes:
> FWIW it's easy to make the issue reproduce faster with following diff
> -       '--no-vacuum --client=1 --transactions=100',
> +       '--no-vacuum --client=1 --transactions=1',

Hmm, didn't help here.  It seems that even though prairiedog managed to
fail on its first attempt, it's not terribly reproducible there; I've
seen only one failure in about 30 manual attempts.  In the one failure,
the non-background pgbench completed fine (as determined by counting
statements in the postmaster's log); but the background one had only
finished about 90 transactions before seemingly getting stuck.  No new
SQL commands had been issued after about 10 seconds.

Nonetheless, I have a theory and a proposal.  This coding pattern
seems pretty silly:

	$pgbench_h->pump_nb;
	$pgbench_h->finish();

ISTM that if you need to call pump at all, you need a loop not just
one call.  So I'm guessing that when it fails, it's for lack of
pumping.

The other thing I noticed is that at least on prairiedog's host, the
number of invocations of the DROP/CREATE/bt_index_check transaction
is ridiculously out of proportion to the number of invocations of the
other transactions.  It can only get through seven or eight iterations
of the index transaction before the other transactions are all done,
which means the last 190 iterations of that transaction are a complete
waste of cycles.

What I think we should do in these two tests is nuke the use of
background_pgbench entirely; that looks like a solution in search
of a problem, and it seems unnecessary here.  Why not run
the DROP/CREATE/bt_index_check transaction as one of three script
options in the main pgbench run?  Aside from dodging this
maybe-its-a-bug-or-maybe-not behavior in IPC::Run, this would make the
test automatically scale the number of iterations of the different
transactions to appropriate values, so that we'd not be wasting cycles.

			regards, tom lane





view thread (40+ messages)  latest in thread

Message-ID: <4170532.1635195582@sss.pgh.pa.us>
Permalink:  ../4170532.1635195582@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/4170532.1635195582@sss.pgh.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: tgl@sss.pgh.pa.us, x4mmm@yandex-team.ru, noah@leadboat.com, pgsql-bugs@lists.postgresql.org, michael@paquier.xyz, pg@bowt.ie, andres@anarazel.de
  Subject: Re: conchuela timeouts since 2021-10-09 system upgrade
  In-Reply-To: <4170532.1635195582@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox