On 2010-08-20 11:39 AM +0300, Josh Berkus wrote:
> On 8/19/10 3:51 PM, Josh Berkus wrote:
>> Two sessions, in transaction:
>>
>> Process A Process B
>>
>> update session where id = X;
>> update order where orderid = 5;
>> update order where orderid = 5;
>> update order where orderid = 5;
>> ... deadlock error.
>
> Johto on IRC pointed out I left something out of the above: "session" is
> referenced in an FK by "orders", and session = X is related to orderid = 5.
Right, that would result in a deadlock. I think truly serializable
transactions still need to SELECT FOR SHARE here for foreign keys to
work, no?
Regards,
Marko Tiikkaja