Re: conchuela timeouts since 2021-10-09 system upgrade
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Noah Misch <noah@leadboat.com>,
PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>,
Michael Paquier <michael@paquier.xyz>, Peter Geoghegan <pg@bowt.ie>,
Andres Freund <andres@anarazel.de>
Date: 2021-10-25T20:59:42Z
Lists: pgsql-bugs
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
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Improve contrib/amcheck's tests for CREATE INDEX CONCURRENTLY.
- b1f943d2aa7e 14.1 landed
- 7f580aa5d88a 15.0 landed
- 5a4b8a8a720c 13.5 landed
- 141cd0ef0b0b 12.9 landed
-
Fix minor memory leaks in pg_dump.
- 70bef494000e 15.0 cited
-
Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY.
- e428699cb3be 9.6.24 landed
- db86746fd11e 10.19 landed
- 5141e471b36a 11.14 landed
- dde966efb286 14.1 landed
- 2e33b43599ad 13.5 landed
- 0869e53d3a07 12.9 landed
- fdd965d074d4 15.0 landed
-
Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions.
- df6158139f64 11.14 landed
- 560124a37c2f 10.19 landed
- 5184932432b4 9.6.24 landed
- fe5d44a1d38f 12.9 landed
- a9d0a5409415 13.5 landed
- a5b9a0000e14 14.1 landed
- 3cd9c3b92197 15.0 landed
-
Add -w back to the flags for pg_ctl (re)start in PostgresNode
- b33259e261ae 15.0 cited
-
Fix CREATE INDEX CONCURRENTLY for simultaneous prepared transactions.
- 77a0e14f0b21 9.5.25 landed
- d683d6528dba 9.6.21 landed
- 179775135b41 10.16 landed
- d1ab4bf6ed2d 11.11 landed
- be843ce29737 12.6 landed
- 86a5b309c933 13.2 landed
- 8a54e12a38d1 14.0 landed