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

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.

In response to

Responses

Browse pgsql-ru-general by date

  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