Re: Tracking down a deadlock - Mailing list pgsql-general

From Bill Moseley
Subject Re: Tracking down a deadlock
Date
Msg-id 20090505004256.GA2312@hank.org
Whole thread Raw
In response to Re: Tracking down a deadlock  (Bill Moseley <moseley@hank.org>)
Responses Re: Tracking down a deadlock  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-general
I seemed to have resolved this issue by a:

    LOCK TABLE account IN EXCLUSIVE MODE;

at the very start of the transaction to prevent that transaction
from running in parallel.

The transaction has quite a few selects and inserts and a few updates.
I was hoping to not lock at the start of the transaction which will
effectively serialize that code.

The update that was causing the deadlock was just about the last
command in the transaction.  Removing that update and the deadlocks
go away.

I had hoped that a LOCK near the end of the transaction (before that UPDATE
that deadlocks) would work.  Oddly, it didn't and the deadlock was reported
then on the LOCK itself, plus my deadlock_timeout (60 seconds) didn't seem to
apply in that case.   A mystery.

Thanks for the help,


--
Bill Moseley.
moseley@hank.org
Sent from my iMutt

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Calculating product from rows - (aggregate product )
Next
From: Alvaro Herrera
Date:
Subject: Re: Tracking down a deadlock