Re: I want tips for debugging deadlocks

From: Fabrice Scemama <fabrices(at)ximmo(dot)ftd(dot)fr>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Hannu Krosing <hannu(at)tm(dot)ee>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: I want tips for debugging deadlocks
Date: 2000-10-04 15:48:03
Message-ID: 39DB5133.1A0D83C2@ximmo.ftd.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

By the way, we finally understood that our main problem,
the one that was making our Pg hang forever, comes from
a deadlock problem. Same as Hannu's one.

There are no deadlock detection, indeed. Good DBAs, or
DBAs working with good coders, will never come across
the problem :) but we did :(

I think a trace log being sent to the DBA would be
a great thing when a deadlock is detected, with if
possible the query that cannot be executed. Oracle
does a good job, there.

Fabrice

Tom Lane wrote:
>
> Hannu Krosing <hannu(at)tm(dot)ee> writes:
> > I'm in a situation where I urgently need to debug PostgreSQL 7.0.2
> > for deadlocks that it does not notice/timeout
>
> The most likely bet is that you are seeing deadlocks that involve a
> buffer spinlock (LockBuffer() in bufmgr.c) --- there's no timeout or
> deadlock detection check in that code. I have been suspicious for
> some time that there are deadlocks possible there, but haven't had
> any luck getting a reproducible example to study. (If you can present
> a reproducible way to make the problem happen, please post it!)
>
> > Where can I find info about running several concurrent backends
> > under a debugger ?
>
> Just fire up N backends and attach to each one with N instances of gdb.
> It's a little confusing but I've done it ...
>
> regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2000-10-04 15:49:30 Re: yacc guru needed
Previous Message D'Arcy J.M. Cain 2000-10-04 15:42:04 WaitOnLock