On 4/29/19 11:04 PM, Andres Freund wrote:
> Fix potential assertion failure when reindexing a pg_class index.
>
There seem to be a number of regression test failures involving deadlock
resulting from this. e.g. on prion:
2019-04-30 03:20:12.772 UTC [15476:388] pg_regress/create_view LOG: statement: alter table tt14t alter column f4 type
integerusing f4::integer;
2019-04-30 03:20:12.776 UTC [15479:450] pg_regress/create_index LOG: statement: REINDEX TABLE pg_class;
2019-04-30 03:20:13.777 UTC [15476:389] pg_regress/create_view LOG: process 15476 detected deadlock while waiting for
AccessShareLockon relation 2662 of database 16384 after 1000.109 ms
2019-04-30 03:20:13.777 UTC [15476:390] pg_regress/create_view DETAIL: Process holding the lock: 15479. Wait queue: .
2019-04-30 03:20:13.777 UTC [15476:391] pg_regress/create_view STATEMENT: alter table tt14t alter column f4 type
integerusing f4::integer;
2019-04-30 03:20:13.777 UTC [15476:392] pg_regress/create_view ERROR: deadlock detected
2019-04-30 03:20:13.777 UTC [15476:393] pg_regress/create_view DETAIL: Process 15476 waits for AccessShareLock on
relation2662 of database 16384; blocked by process 15479.
Process 15479 waits for ShareLock on transaction 2887; blocked by process 15476.
Process 15476: alter table tt14t alter column f4 type integer using f4::integer;
Process 15479: REINDEX TABLE pg_class;
cheers
andrew
--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services