Search Postgresql Archives

Re: How to detect Postgres deadlocks?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2006-08-23 at 14:45, andre wrote:
> Hi,
> 
> We are using Postgres 7.4.5, and I'm trying to find a way to detect
> and gather deadlock information.
> 
> 1) Which sql queries should I use to detect deadlocks while they are
> happening? I see the deadlock info on the log file, but I'd like to
> query the database to see them as they happen... 
> 
> 2) Which fields on which pg catalogs indicate a deadlock condition?
> 
> 3) How can I get more info about the processes involved on deadlocks?
> 
> 4) How can I get the sql statements associated with the processes
> involved on deadlocks? 
> 
> On the logs I see the procpids of the processes involved on past
> deadlocks, but I 'd like to know how to get those procpids, and how to
> get the "current_query" associated with them...

I'm not sure what you're really looking for.  When PostgreSQL detects a
deadlock, it aborts one of the queries to stop the deadlock right away.

test=> update l set b=22 where i=2;
ERROR:  deadlock detected
DETAIL:  Process 25854 waits for ShareLock on transaction 11654043;
blocked by process 24918.
Process 24918 waits for ShareLock on transaction 11654047; blocked by
process 25854.
test=>

That deadlock detection took about 1 second and rolled back my
transaction immediately.  I'm not sure you can detect them in real time
any better than pgsql can.

Or are you experiencing some kind of deadly embrace problem???

Tell us what problem you're having and maybe we can come up with some
better advice.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux