On Mon, Oct 28, 2013 at 12:17 PM, Andres Freund <andres@2ndquadrant.com> wrote:
>> In general, I don't think waiting on an XID is sufficient because a
>> process can acquire a heavyweight lock without having an XID. Perhaps
>> use the VXID instead?
>
> But decoding doesn't care about transactions that haven't "used" an XID
> yet (since that means they haven't modified the catalog), so that
> shouldn't be problematic.
Hmm, maybe. But what if the deadlock has more members? e.g. A is
blocking decoding by holding AEL w/no XID, and B is blocking A by
doing VF on a rel A needs, and decoding is blocking B.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company