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: Noah Misch <noah@leadboat.com>
Cc: Andrey Borodin <x4mmm@yandex-team.ru>,
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-26T14:29:39Z
Lists: pgsql-bugs
Noah Misch <noah@leadboat.com> writes: > On Tue, Oct 26, 2021 at 02:03:54AM -0400, Tom Lane wrote: >> Or more >> practically, use advisory locks in that script to enforce that only one >> runs at once. > The author did try that. Hmm ... that ought to have done the trick, I'd think. However: > Both sound doable, but I don't expect either to fix prairiedog's trouble. Yeah :-(. I think this test is somehow stumbling over a pre-existing bug. >> So what we have is that libpq thinks it's sent the next DROP INDEX, >> but the backend hasn't seen it. > Thanks for isolating that. The plot thickens. When I went back to look at that machine this morning, I found this in the postmaster log: 2021-10-26 02:52:09.324 EDT [1013] 002_cic.pl LOG: statement: DROP INDEX CONCURRENTLY idx; 2021-10-26 02:52:09.352 EDT [1013] 002_cic.pl LOG: could not send data to client: Broken pipe 2021-10-26 02:52:09.352 EDT [1013] 002_cic.pl FATAL: connection to client lost The timestamps correspond (more or less anyway) to when I killed off the stuck test run and went to bed. So the DROP command *was* sent, and it was eventually received by the backend, but it seems to have taken killing the pgbench process to do it. I think this probably exonerates the pgbench/libpq side of things, and instead we have to wonder about a backend or kernel bug. A kernel bug could possibly explain the unexplainable connection to what's happening on some other file descriptor. I'd be prepared to believe that prairiedog's ancient macOS version has some weird bug preventing kevent() from noticing available data ... but (a) surely conchuela wouldn't share such a bug, and (b) we've been using kevent() for a couple years now, so how come we didn't see this before? Still baffled. I'm currently experimenting to see if the bug reproduces when latch.c is made to use poll() instead of kevent(). But the failure rate was low enough that it'll be hours before I can say confidently that it doesn't (unless, of course, it does). 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