Skip to main content
9 events
when toggle format what by license comment
May 11, 2015 at 21:36 answer added Donald ball timeline score: 1
May 11, 2015 at 21:22 comment added Rick James Perhaps a FOR UPDATE is needed?
May 11, 2015 at 21:16 comment added Donald ball Okay, I'm a lying liar and I have lied to you, I apologize! This isn't the extent of the transaction. Before I do the INSERT, I do a write-locking select on the external index value in both transactions. I would have expected T2 to block T1 at that point, but that is not the case, both transactions successfully acquire a lock on the gap. Neither transaction can promote its lock to insert intention; T1 will block when it tries, then T2 will deadlock when it tries, thereby letting T1 succeed.
May 11, 2015 at 19:32 comment added Donald ball These are running in explicit transactions using the default REPEATABLE READ isolation level. The (8) suffix on external_record_type should be irrelevant to this problem, albeit necessary for performance for the values we have. It's worth noting the problem is timing dependent. I can't reproduce this manually in an offline session with two concurrent transactions.
May 11, 2015 at 19:22 comment added Rick James Hmmm... What is the value of autocommit? Do you have explicit BEGIN..COMMIT? SHOW CREATE TABLE. Do you really need the (8) prefix?
May 11, 2015 at 19:20 comment added Donald ball I'm afraid these are the entire transactions. Hence my confusion!
May 11, 2015 at 19:17 comment added Rick James Let's see the entire transaction. That pair of INSERTs should "lock wait", not deadlock, so I am thinking that something else in the transactions is involved.
May 11, 2015 at 19:14 review First posts
May 11, 2015 at 19:40
May 11, 2015 at 19:10 history asked Donald ball CC BY-SA 3.0