Paul A Vixie <vixie@vix.com> writes:
>> As far as Postgres is concerned, there's no deadlock here, only a slow client
> that could be true if we used explicit locks. all our accesses are of the
> form "learn everything you need to know to do the transaction, then open the
> database, do it, and close". there are some really long SELECT's (which make
> dns zone files) but they can't block unless the file system is blocking the
> write()'s in the client, which would only happen in NFS, which we don't use.
Well, my point was that it could happen just on the basis of the
*implicit* read lock grabbed by a SELECT. All you'd need is a client
that's stuck partway through a transaction for some external reason.
However, it sounds like you've taken care to avoid that possibility,
so the theory does seem shaky.
regards, tom lane