Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data
Noah Misch <noah@leadboat.com>
From: Noah Misch <noah@leadboat.com>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Geoghegan <pg@bowt.ie>, Andres Freund <andres@anarazel.de>
Date: 2021-10-24T05:00:28Z
Lists: pgsql-bugs
On Mon, Oct 18, 2021 at 08:02:12PM -0700, Noah Misch wrote: > On Mon, Oct 18, 2021 at 06:23:05PM +0500, Andrey Borodin wrote: > > > 17 окт. 2021 г., в 20:12, Noah Misch <noah@leadboat.com> написал(а): > > > I think the attached version is ready for commit. Notable differences > > > vs. v14: Pushed. Buildfarm member conchuela (DragonFly BSD 6.0) has gotten multiple "IPC::Run: timeout on timer" in the new tests. No other animal has. https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=conchuela&dt=2021-10-24%2003%3A05%3A09 is an example run. The pgbench queries finished quickly, but the $pgbench_h->finish() apparently timed out after 180s. I guess this would be consistent with pgbench blocking in write(), waiting for something to empty a pipe buffer so it can write more. I thought finish() will drain any incoming I/O, though. This phenomenon has been appearing regularly via src/test/recovery/t/017_shm.pl[1], so this thread doesn't have a duty to resolve it. A stack trace of the stuck pgbench should be informative, though. Compared to my last post, the push included two more test changes. I removed sleeps from a test. They could add significant time on a system with coarse sleep granularity. This did not change test sensitivity on my system. Second, I changed background_pgbench to include stderr lines in $stdout, as it had documented. This becomes important during the back-patch to v11, where server errors don't cause a nonzero pgbench exit status. background_psql still has the same bug, and I can fix it later. (The background_psql version of the bug is not affecting current usage.) FYI, the non-2PC test is less sensitive in older branches. It reproduces master's bug in 25-50% of runs, but it took about six minutes on v11 and v12. > > > One thing not done here is to change the tests to use CREATE INDEX > > > CONCURRENTLY instead of REINDEX CONCURRENTLY, so they're back-patchable to v11 > > > and earlier. I may do that before pushing, or I may just omit the tests from > > > older branches. > > > > The tests refactors PostgresNode.pm and some tests. Back-patching this would be quite invasive. > > That's fine with me. Back-patching a fix without its tests is riskier than > back-patching test infrastructure changes. Back-patching the tests did end up tricky, for other reasons. Before v12 (d3c09b9), a TAP suite in a pgxs module wouldn't run during check-world. Before v11 (7f563c0), amcheck lacks the heapallindexed feature that the tests rely on. Hence, for v11, v10, and v9.6, I used a plpgsql implementation of the heapallindexed check, and I moved the tests to src/bin/pgbench. [1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=conchuela&dt=2021-10-19%2012%3A58%3A08
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