Re: Query failed: ERROR: deadlock detected

From: Oliver Elphick <olly(at)lfix(dot)co(dot)uk>
To: Aldor <an(at)mediaroot(dot)de>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Query failed: ERROR: deadlock detected
Date: 2005-08-29 17:25:57
Message-ID: 1125336357.2589.8.camel@linda
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Mon, 2005-08-29 at 16:50 +0100, Aldor wrote:
> PostgreSQL 8.0.3: Any idea what this is?
>
> ---
> Warning: pg_query(): Query failed: ERROR: deadlock detected
> DETAIL: Process 8835 waits for ShareLock on transaction 193588236;
> blocked by process 8834.
> Process 8834 waits for ShareLock on transaction 193588228; blocked by
> process 8835
> ---
>
> I have never seen such a log entry until now.

You have two transactions locking each other out.

For example:
trans A: begin;
trans B: begin;
trans A: select * from table_a for update; -- locks table_a
trans B: select * from table_b for update; -- locks table_b
trans A: select * from table_b for update; -- blocked by trans B's lock
trans B: select * from table_a for update; -- blocked by trans A's lock

Since the two transactions are blocking each other, the locks will never
be released by the transactions that are holding them. After a preset
interval (about 1 second by default) a deadlock is detected and reported
with this error message and one of the transactions is aborted.

See manual section 12.3.3 in the 8.0 documentation.

--
Oliver Elphick olly(at)lfix(dot)co(dot)uk
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA
========================================
Do you want to know God? http://www.lfix.co.uk/knowing_god.html

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Aldor 2005-08-29 17:34:21 Re: Query failed: ERROR: deadlock detected
Previous Message Aldor 2005-08-29 15:50:44 Query failed: ERROR: deadlock detected