The more I look at TransactionGroupUpdateXidStatus, the more I think it's broken, and while we do have some tests, I don't have confidence that they cover all possible cases.
Or, at least, if this code is good, then it hasn't been sufficiently explained. If we have multiple processes trying to write bits to clog, and they are using different banks, then the LWLockConditionalAcquire will be able to acquire the bank lock -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/ "The saddest aspect of life right now is that science gathers knowledge faster than society gathers wisdom." (Isaac Asimov)