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

Поиск
Список
Период
Сортировка
От Вавржин Игорь
Тема [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently
Дата
Msg-id CAHGBwKgxjTARYx=CVCJOyN2rfDkBVZBKCbdBCe=8-X4Mcrd+Sw@mail.gmail.com
обсуждение исходный текст
Ответ на [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently  (Dmitry Igrishin <dmitigr@gmail.com>)
Ответы [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently
[pgsql-ru-general] Re: [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently
Список pgsql-ru-general
Лог я прочитал :) вопрос в другом: почему конкурентное удаление индекса просто не подаждало, пока локи снимутся, как это описано в документации!? Баг? Или я что-то не понимаю?

23 марта 2017 г. 18:41 пользователь "Dmitry Igrishin" <dmitigr@gmail.com> написал:


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] deadlock при drop index concurrently
Следующее
От: Dmitry Igrishin
Дата:
Сообщение: [pgsql-ru-general] Re: [pgsql-ru-general] deadlock при drop index concurrently