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
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 |