[pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently

Поиск
Список
Период
Сортировка
От Dmitry Igrishin
Тема [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently
Дата
Msg-id CAAfz9KMkxs4S6qtVaaQYbTvZ1gxBJrfaE8+p5WGx7-DYkenw7g@mail.gmail.com
обсуждение исходный текст
Ответ на [pgsql-ru-general] deadlock при drop index concurrently  (Вавржин Игорь <igor.vavrjin@gmail.com>)
Ответы [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently
Список pgsql-ru-general


2017-03-23 12:45 GMT+03:00 Вавржин Игорь <igor.vavrjin@gmail.com>:
Вот что видим в логах:

Mar 23 15:45:07 mdb postgres[26481]: [177-1] user=pgsql,db=geo,client=10.77.255.13 ERROR:  deadlock detected
Mar 23 15:45:07 mdb postgres[26481]: [177-2] user=pgsql,db=geo,client=10.77.255.13 DETAIL:  Process 26481 waits for ShareLock on virtual transaction 8/29343079; blocked by process 15087.
Mar 23 15:45:07 mdb postgres[26481]: [177-3]        Process 15087 waits for AccessExclusiveLock on relation 24694 of database 17701; blocked by process 26481.
Mar 23 15:45:07 mdb postgres[26481]: [177-4]        Process 26481: DROP INDEX CONCURRENTLY IF EXISTS geo_11_2gis_get_route_platform_ids_from_json
Mar 23 15:45:07 mdb postgres[26481]: [177-5]        
Mar 23 15:45:07 mdb postgres[26481]: [177-6]        Process 15087: LOCK TABLE geo_11 IN ACCESS EXCLUSIVE MODE
Mar 23 15:45:07 mdb postgres[26481]: [177-7] user=pgsql,db=geo,client=10.77.255.13 HINT:  See server log for query details.
Mar 23 15:45:07 mdb postgres[26481]: [177-8] user=pgsql,db=geo,client=10.77.255.13 STATEMENT:  DROP INDEX CONCURRENTLY IF EXISTS geo_11_2gis_get_route_platform_ids_from_json
Mar 23 15:45:07 mdb postgres[26481]: [177-9]

кто-нибудь может объяснить откуда мог взяться при указании конкурентности дедлок?
версия postgres 9.4.4
Судя по тому, что написано, процесс 15087 получил некий уровень блокировки (скажем, ShareLock), потом запустил процесс 26481 для конкурентного создания индекса (которому требуется ShareLock), а потом затребовал блокировку уровня AccessExclusiveLock, которую получить не может, так как процесс 26481 ждёт получения блокировки уровня ShareLock.

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Dmitry Igrishin
Дата:
Сообщение: [pgsql-ru-general] Re: [pgsql-ru-general] сделать ALTER TABLE varchar в TEXT
Следующее
От: Вавржин Игорь
Дата:
Сообщение: [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently