Re: About checking all dead lock tables - Mailing list pgsql-general

From Michael Fuhr
Subject Re: About checking all dead lock tables
Date
Msg-id 20060407021458.GA55452@winnie.fuhr.org
Whole thread Raw
In response to About checking all dead lock tables  (Emi Lu <emilu@encs.concordia.ca>)
Responses Re: About checking all dead lock tables  ("Florian G. Pflug" <fgp@phlo.org>)
List pgsql-general
On Thu, Apr 06, 2006 at 03:36:33PM -0400, Emi Lu wrote:
> How to check whether a table is locked?

You can monitor locks by querying the pg_locks view.

http://www.postgresql.org/docs/8.0/interactive/monitoring-locks.html
http://www.postgresql.org/docs/8.0/interactive/view-pg-locks.html

Only a few operations lock entire tables; for more information see
the Concurrency Control chapter in the documentation.

http://www.postgresql.org/docs/8.0/interactive/mvcc.html

> Is there a way that I can find all deadlocks under postgresql 8.0.1 ?

Are you sure you mean "deadlocks"?  Deadlock occurs when transaction
A holds a lock that transaction B wants and transaction B holds a
lock that transaction A wants; PostgreSQL detects this condition
and aborts one of the transactions, allowing the other to continue.
By default this happens after one second (see the deadlock_timeout
setting).

Perhaps you want to see pending or blocked lock attempts, i.e.,
locks that have been requested but are not yet acquired because
another transaction holds a conflicting lock.  If that's the case
then look for rows in pg_locks where "granted" is false.

--
Michael Fuhr

pgsql-general by date:

Previous
From: "Michael Schmidt"
Date:
Subject: Re: programatic database dump
Next
From: Tom Lane
Date:
Subject: Re: Debian package for freeradius_postgresql module