Craig Vosburgh <craig(dot)vosburgh(at)cassatt(dot)com> writes:
> As for which process owns that lock, I'm not sure how to find that out
> (sorry newbie). I can find the PID that is waiting for that lock and I can
> find the table/row that appears to be waiting for the lock to perform the
> action but I can't figure out which process actually owns the lock that is
> causing the issue.
It's whichever one actually holds that same lock according to pg_locks
(ie, there's an entry that matches on locktype and transactionid but
has granted = 't'; then join the pid of that entry against
pg_stat_activity).
regards, tom lane