Jump to content

petor

New Members
  • Posts

    1
  • Joined

  • Last visited

petor's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. Hi, I've created a PHP application using PDO transactions, which for some reason deadlocks. If I query MySQL with 'SHOW ENGINE INNODB STATUS' I receive the following: ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2014-07-04 11:09:40 12c4 *** (1) TRANSACTION: TRANSACTION 203531, ACTIVE 0 sec starting index read mysql tables in use 3, locked 3 LOCK WAIT 6 lock struct(s), heap size 1248, 3 row lock(s) MySQL thread id 1660, OS thread handle 0x2614, query id 3618 localhost ::1 petor statistics DELETE answer FROM answer JOIN question q ON answer.id_question = q.id_question JOIN product prod ON q.id_product = prod.id_product WHERE answer.name = 'answer3' AND prod.name = 'test' AND q.name = 'question3' *** (1) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 36 page no 5 n bits 440 index `value` of table `test`.`answer` trx id 203531 lock_mode X waiting Record lock, heap no 370 PHYSICAL RECORD: n_fields 3; compact format; info bits 32 0: len 7; hex 616e7377657233; asc answer3;; 1: len 4; hex 800000f3; asc ;; 2: len 4; hex 800000c5; asc ;; *** (2) TRANSACTION: TRANSACTION 203528, ACTIVE 0 sec starting index read mysql tables in use 3, locked 3 7 lock struct(s), heap size 1248, 4 row lock(s) MySQL thread id 1658, OS thread handle 0x12c4, query id 3615 localhost ::1 petor statistics DELETE answer FROM answer JOIN question q ON answer.id_question = q.id_question JOIN product prod ON q.id_product = prod.id_product WHERE answer.name = 'answer3' AND prod.name = 'test' AND q.name = 'question3' *** (2) HOLDS THE LOCK(S): RECORD LOCKS space id 36 page no 5 n bits 440 index `value` of table `test`.`answer` trx id 203528 lock_mode X locks rec but not gap Record lock, heap no 370 PHYSICAL RECORD: n_fields 3; compact format; info bits 32 0: len 7; hex 616e7377657233; asc answer3;; 1: len 4; hex 800000f3; asc ;; 2: len 4; hex 800000c5; asc ;; *** (2) WAITING FOR THIS LOCK TO BE GRANTED: RECORD LOCKS space id 36 page no 5 n bits 440 index `value` of table `test`.`answer` trx id 203528 lock_mode X waiting Record lock, heap no 370 PHYSICAL RECORD: n_fields 3; compact format; info bits 32 0: len 7; hex 616e7377657233; asc answer3;; 1: len 4; hex 800000f3; asc ;; 2: len 4; hex 800000c5; asc ;; *** WE ROLL BACK TRANSACTION (1) I have some problems analysing this data though. From what I see it looks like transaction 203528 (the second) is waiting for the same lock the be granted that he is holding, which does not seem like a situation that could happen... Besides that, the two queries described in this log are the same (well they have the same query text), which is also something suspicious (as I did not intend two equal queries to be executed subsequently) Can somebody explain this message to me? Are my assumptions correct, or am I missing something here? Thanks in advance!!!
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.