From: | Dmitry Igrishin <dmitigr(at)gmail(dot)com> |
---|---|
To: | Вавржин Игорь <igor(dot)vavrjin(at)gmail(dot)com> |
Cc: | pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org> |
Subject: | Re: [pgsql-ru-general] deadlock при drop index concurrently |
Date: | 2017-03-23 11:41:57 |
Message-ID: | CAAfz9KMkxs4S6qtVaaQYbTvZ1gxBJrfaE8+p5WGx7-DYkenw7g@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-ru-general |
2017-03-23 12:45 GMT+03:00 Вавржин Игорь <igor(dot)vavrjin(at)gmail(dot)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Вавржин Игорь | 2017-03-23 13:09:40 | Re: [pgsql-ru-general] deadlock при drop index concurrently |
Previous Message | Dmitry Igrishin | 2017-03-23 11:15:33 | Re: [pgsql-ru-general] сделать ALTER TABLE varchar в TEXT |