Re: deadlock while re-indexing table

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Dave Cramer <pg(at)fastcrypt(dot)com>
Cc: Gregory Stark <stark(at)enterprisedb(dot)com>, "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>, "Postgres General" <pgsql-general(at)postgresql(dot)org>
Subject: Re: deadlock while re-indexing table
Date: 2008-02-12 22:05:47
Message-ID: 3509.1202853947@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Dave Cramer <pg(at)fastcrypt(dot)com> writes:
>>> The other process is inserting into the user_profile table.
>>
>> Did either transaction do anything else in the same transaction
>> previously?
>>
> It would appear that the insert is running before the reindex starts.

That's not possible --- if it had been, the insert would already have
RowExclusiveLock on the table, which would have blocked the reindex
from acquiring ShareLock on the table. The reindex must already have
that, since it's trying to acquire AccessExclusiveLock on one of the
indexes, so there can't be any active inserts on the table.

I suspect the other process must be doing a series of selects in one
transaction that use indexes of the table in some random order, but
that's just an educated guess at this point.

BTW, what PG version is this?

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2008-02-12 22:06:48 Re: end of life for pg versions...
Previous Message Tom Lane 2008-02-12 22:00:09 Re: Deferred constraints and locks...