I seemed to have resolved this issue by a:
LOCK TABLE account IN EXCLUSIVE MODE;
at the very start of the transaction to prevent that transaction
from running in parallel.
The transaction has quite a few selects and inserts and a few updates.
I was hoping to not lock at the start of the transaction which will
effectively serialize that code.
The update that was causing the deadlock was just about the last
command in the transaction. Removing that update and the deadlocks
go away.
I had hoped that a LOCK near the end of the transaction (before that UPDATE
that deadlocks) would work. Oddly, it didn't and the deadlock was reported
then on the LOCK itself, plus my deadlock_timeout (60 seconds) didn't seem to
apply in that case. A mystery.
Thanks for the help,
--
Bill Moseley.
moseley@hank.org
Sent from my iMutt