Joseph Shraibman <jks(at)selectacast(dot)net> writes:
> Last night one of these vacuum fulls deadlocked with a query on this
> table. Both were stuck doing nothing until I did a kill -INT on the
> backends doing the vacuum.
> So my questions:
> 1) What can I do to avoid this?
> 2) What do I do next time this happens to get more debugging info out of
> the situation?
Look in pg_locks and pg_stat_activity.
I think it is highly unlikely that there was a deadlock inside the
database. Far more likely that both jobs were waiting on some
idle-in-transaction client whose transaction was holding a lock
on the table.
regards, tom lane