> > I've been experimenting with concurrent VACUUMs and getting occasional
> > instances of
> >
> > NOTICE: Deadlock detected -- See the lock(l) manual page for a possible cause.
> > ERROR: WaitOnLock: error on wakeup - Aborting this transaction
> >
> > It would be really nice if I could find out the particular locks that
> > are causing this conflict --- but the code that emits these messages
> > isn't very transparent :-(. Can anyone explain how to determine just
> > what the deadlock is?
> >
>
> Massimo has some. See the top of lock.c for pg_options flags to dump
> out locks.
Yes, there is a DumpAllLocks() which should dump the lock table in case of
deadlock, but I have never been able to find any useful information from it.
The code is non compiled by default unless you define DEADLOCK_DEBUG.
--
Massimo Dal Zotto
+----------------------------------------------------------------------+
| Massimo Dal Zotto email: dz@cs.unitn.it |
| Via Marconi, 141 phone: ++39-0461534251 |
| 38057 Pergine Valsugana (TN) www: http://www.cs.unitn.it/~dz/ |
| Italy pgp: finger dz@tango.cs.unitn.it |
+----------------------------------------------------------------------+