Re: row-level deadlock problem

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Martijn van Oosterhout <kleptog(at)svana(dot)org>, Kamil Kaczkowski <kamil(at)kamil(dot)eisp(dot)pl>, pgsql-general(at)postgresql(dot)org
Subject: Re: row-level deadlock problem
Date: 2004-11-27 19:29:48
Message-ID: 20041127192948.GB31246@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sat, Nov 27, 2004 at 12:58:36PM -0500, Tom Lane wrote:
> Martijn van Oosterhout <kleptog(at)svana(dot)org> writes:
> > Well, there has to be something, since an UPDATE in Read Committed mode
> > simply doesn't have any locks that can deadlock.
>
> You're mistaken; it takes a row lock on each row it updates. I'm not
> sure why the two UPDATEs are visiting the same rows in different orders,
> but if they do the failure is certainly possible.

One of them could be using an indexscan while the other is not. If the
heap is in reverse order compared to the scan, that would explain it.

Is there a solution to this problem? The FK deadlock problem can be
fixed with shared row locks, but this is a different one.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"La felicidad no es mañana. La felicidad es ahora"

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Kamil Kaczkowski 2004-11-27 20:13:17 Re: row-level deadlock problem
Previous Message Chris Green 2004-11-27 18:49:31 Re: Can one alter the format of a numeric column?