On Mar 24, 2008, at 6:21 PM, Tom Lane wrote:
Alvaro Herrera <[EMAIL PROTECTED]> writes:
Gregory Stark wrote:
The axis on which I still see real room for improvement here is on the description of the locks. It's awfully hard for a user to tell from the deadlock message exactly what operation of the query was acquiring what lock
when it deadlocked.

Are the involved queries not enough?  Why?  What would you like to
have?

Greg's certainly got a point.  Consider for example tuple-level locks
taken as a result of an FK check --- which one, and which rows are
involved?  Or the case where the logged query is just "SELECT
some_huge_user_defined_function()" and you have no idea what part of the function is triggering it. (The CONTEXT traceback will help here if the
backend running the function is the one that errors out, but not when
it's some other backend.)

I don't have any immediate ideas for improvement either, but we
certainly shouldn't consider this a totally solved problem.

Something I always find myself wanting when debugging locking issues is what's in pg_locks. Could we save that information somewhere when we detect a deadlock? In a real table would be nice, but I'd settle for just dumping it to a file somewhere. Or maybe into the logs.
--
Decibel!, aka Jim C. Nasby, Database Architect  [EMAIL PROTECTED]
Give your computer some brain candy! www.distributed.net Team #1828


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to