Re: Strange deadlock with object/target of lock : transaction
Achilleas Mantzios <a.mantzios@cloud.gatewaynet.com>
From: Achilleas Mantzios <a.mantzios@cloud.gatewaynet.com>
To: pgsql-general@lists.postgresql.org
Date: 2025-08-20T13:59:05Z
Lists: pgsql-general
On 8/14/25 16:01, Achilleas Mantzios wrote: > Hi Adrian > > On 8/14/25 15:39, Adrian Klaver wrote: > >> On 8/14/25 00:07, Achilleas Mantzios wrote: >>> Hi All >>> >>> We've been hit by a weird deadlock which it took me some days to >>> isolate and replicate. It does not have to do with order of updates >>> or any explicit TABLE-level locking, the objects/targets of the >>> deadlock in question are transactions. >> > First off, I maybe wrong with the above conclusion, I noticed that > even in the common deadlock scenario (xact A updating object 1 and > then 2, while xact B updating 2 and then 1) the message is again the > same , i.e. > > Process <pid1> waits for ShareLock on transaction <xactB>; blocked by > process <pid2>. > > Process <pid2> waits for ShareLock on transaction <xactA>; blocked by > process <pid1>. > > while updating tuple ()... > > Also I should have mentioned that it takes at least three transactions > as in the example to make the deadlock happen. At least two of the > "UPDATE" style and one of the "INSERT" style. > >> I have some questions: >> >> 1) Did this work in versions prior to 18? > No, our production is on 16.9 and this is where I got the issue. >> >> 2) The test case you ran was done on 18beta1, are you planning to >> test on the just released 18beta3? > I must upgrade, but I don't think anything will change, this behavior > seems consistent at least across 16->18beta1 Hi, I just tested with 18beta3, as expected, no change at all, I still get the deadlock. >> >>