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>
Date: 2021-08-24T05:37:53Z
Lists: pgsql-bugs
On Mon, Aug 23, 2021 at 10:38:00PM +0500, Andrey Borodin wrote:
> > 22 авг. 2021 г., в 22:42, Andrey Borodin <x4mmm@yandex-team.ru> написал(а):
> > Currently when testing combination of all fixes I observe things like
> > 'error running SQL: 'psql:<stdin>:1: ERROR:  prepared transaction with identifier "a" is busy''
> > Looks like kind of race condition in tests.
> 
> There was a race condition in deterministic 2PC test. Fixed with synchronisation points.
> PFA patches that work on my machines.
> I'm going to start fixing review notes if it will not break until tomorrow.

That is great news.

> BTW are subtransaction anything special wrt CIC? is it worth to sprinkle some SAVEPOINTs here and there, just to be sure?

Not especially.  The AssignTransactionId() "Ensure parent(s) have XIDs"
behavior may be important to CIC.  In the test pgbench runs for scripts
002_pgbench_concurrent_2pc and 002_pgbench_concurrent_transaction, it likely
wouldn't hurt to pass two equal-weight test scripts, one of which uses
savepoints.



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Improve contrib/amcheck's tests for CREATE INDEX CONCURRENTLY.

  2. Fix minor memory leaks in pg_dump.

  3. Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY.

  4. Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions.

  5. Add -w back to the flags for pg_ctl (re)start in PostgresNode

  6. Fix CREATE INDEX CONCURRENTLY for simultaneous prepared transactions.