Re: deadlock while re-indexing table - Mailing list pgsql-general

From Dave Cramer
Subject Re: deadlock while re-indexing table
Date
Msg-id D52E4614-CF41-43D2-946B-FE2AAA4B9B7E@fastcrypt.com
Whole thread Raw
In response to Re: deadlock while re-indexing table  (Gregory Stark <stark@enterprisedb.com>)
Responses Re: deadlock while re-indexing table
List pgsql-general
On 12-Feb-08, at 1:02 PM, Gregory Stark wrote:

> "Dave Cramer" <pg@fastcrypt.com> writes:
>
>> On 12-Feb-08, at 10:37 AM, Tom Lane wrote:
>>
>>> Alvaro Herrera <alvherre@commandprompt.com> writes:
>>>> Dave Cramer wrote:
>>>>> reindex table user_profile;
>>>>> ERROR:  deadlock detected
>>>>> DETAIL:  Process 32450 waits for AccessExclusiveLock on relation
>>>>> 194689112 of database 163880909; blocked by process 31236.
>>>>> Process 31236 waits for AccessShareLock on relation 194689110 of
>>>>> database 163880909; blocked by process 32450.
>>>
>>>> I don't find this very surprising ... I would suggest using
>>>> "reindex
>>>> index" for each index instead.  I'm not sure if REINDEX TABLE is
>>>> supposed to be deadlock-free.
>>>
>>> It's not guaranteed to be so, but I'd think simple cases would be
>>> okay.  What's that other process doing?
>>>
>> The other process is inserting into the user_profile table.
>
> Hm. This shouldn't be enough to cause a deadlock. Both inserts and
> reindex use
> the same method to get the list of indexes which returns them in the
> same
> order.
>
> Did either transaction do anything else in the same transaction
> previously?
>
It would appear that the insert is running before the reindex starts.
Other than that I can't tell yet what was done in other transactions.

Dave
> --
>  Gregory Stark
>  EnterpriseDB          http://www.enterprisedb.com
>  Ask me about EnterpriseDB's PostGIS support!


pgsql-general by date:

Previous
From: Gregory Stark
Date:
Subject: Re: deadlock while re-indexing table
Next
From: Lew
Date:
Subject: Re: "advanced" database design (long)