------------------------
LATEST DETECTED DEADLOCK
------------------------
2025-09-19 21:42:10 0x7f2cd67fa700
*** (1) TRANSACTION:
TRANSACTION 24692, ACTIVE 3 sec starting index read
mysql tables in use 2, locked 2
LOCK WAIT 5 lock struct(s), heap size 1128, 3 row lock(s)
MySQL thread id 127, OS thread handle 139832472479488, query id 44118 localhost appuser updating
UPDATE order_items
SET qty = qty + 1
WHERE order_id = 500 AND id = 1001
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 121 page no 145 n bits 72 index `PRIMARY` of table `shop`.`orders` trx id 24692
lock_mode X locks rec but not gap waiting
Record lock, heap no 7 PHYSICAL RECORD: n_fields 6; compact format; info bits 0
0: len 4; id=500
1: ... (hidden/internal fields omitted)
*** (2) TRANSACTION:
TRANSACTION 24691, ACTIVE 4 sec updating or deleting
4 lock struct(s), heap size 1136, 4 row lock(s)
MySQL thread id 123, OS thread handle 139832488126208, query id 44116 localhost appuser updating
UPDATE orders
SET status = 'processed'
WHERE id = 500
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 121 page no 145 n bits 72 index `PRIMARY` of table `shop`.`orders` trx id 24691
lock_mode X locks rec but not gap
Record lock, heap no 7 PHYSICAL RECORD: n_fields 6; compact format; info bits 0
0: len 4; id=500
1: ... (hidden/internal fields omitted)
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 122 page no 88 n bits 80 index `fk_order_items_order_id` of table `shop`.`order_items` trx id 24691
lock_mode X locks rec but not gap waiting
Record lock, heap no 12 PHYSICAL RECORD: n_fields 6; compact format; info bits 0
0: len 4; order_id=500
1: ... (hidden/internal fields omitted)
*** WE ROLL BACK TRANSACTION (1)