MySql Deadlock при запросе INSERT INTO

Рейтинг: 0Ответов: 0Опубликовано: 21.02.2023

Помогите, пожалуйста с deadlock.

SELECT * 
FROM `pdf_uploads` 
WHERE `order_id` = ? 
ORDER BY id DESC LIMIT 1 for update;

BEGIN

UPDATE `pdf_uploads` 
SET path = ?, `entity` = ?, `pay_block` = ?, `pay_link` = ?, `email_hash` = ?, `link` = ? 
WHERE `hash` = ?;

INSERT INTO `pdf_uploads` (`is_paid`, `path`, `hash`, `entity`, `order_id`, `pay_block`, `pay_link`, `InvoiceId`, `email_hash`, `link`) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);

END

При такой транзакции выдаёт Deadlock found when trying to get lock; try restarting transaction. Прилагаю отчёт InnoDB

2023-02-21 06:04:29 0x7f6bb76c9700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 14 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 3 srv_active, 0 srv_shutdown, 620 srv_idle
srv_master_thread log flush and writes: 623
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 8
OS WAIT ARRAY INFO: signal count 8
RW-shared spins 0, rounds 8, OS waits 4
RW-excl spins 0, rounds 0, OS waits 0
RW-sx spins 0, rounds 0, OS waits 0
Spin rounds per wait: 8.00 RW-shared, 0.00 RW-excl, 0.00 RW-sx
------------------------
LATEST DETECTED DEADLOCK
------------------------
2023-02-21 05:56:41 0x7f6bb7645700
*** (1) TRANSACTION:
TRANSACTION 48133, ACTIVE 13 sec inserting
mysql tables in use 1, locked 1
LOCK WAIT 3 lock struct(s), heap size 1136, 2 row lock(s)
MySQL thread id 4, OS thread handle 140100615304960, query id 91 172.19.0.2 admin update
INSERT INTO `pdf_uploads`
            (`is_paid`, `path`, `hash`, `entity`, `order_id`, `pay_block`, `pay_link`, `InvoiceId`, `email_hash`, `link`)
                VALUES
            (0, ''d4f48dc209d88661703a0a22227a17cc/Коммерческое предложение и счет на оплату №10093 от 9 января 2023 г..zip'', ''d4f48dc209d88661703a0a22227a17cc'', 1, ''4f71f47a-901b-11ed-82b5-00155d000a01'', 0, ''https://orders.cloudpayments.ru/d/ZlGLK9wxGkVCqeu1'', 10093, ''6CC3E3BAE0668E3297D63A943F5C225A'', ''InvoiceId=10093&Email=ovk%40ezan.ac.ru&AccountId=ovk%40ezan.ac.ru&Amount=4812&invoice=CNFS-4%2410%24481.2%244812'')
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 24 page no 3 n bits 72 index PRIMARY of table `revo-test`.`pdf_uploads` trx id 48133 lock_mode X insert intention waiting
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0
 0: len 8; hex 73757072656d756d; asc supremum;;

*** (2) TRANSACTION:
TRANSACTION 48134, ACTIVE 10 sec inserting
mysql tables in use 1, locked 1
3 lock struct(s), heap size 1136, 2 row lock(s)
MySQL thread id 5, OS thread handle 140100615034624, query id 93 172.19.0.2 admin update
INSERT INTO `pdf_uploads`
            (`is_paid`, `path`, `hash`, `entity`, `order_id`, `pay_block`, `pay_link`, `InvoiceId`, `email_hash`, `link`)
                VALUES
            (0, ''808008eb9f859bc13384fa54f846b88b/Коммерческое предложение и счет на оплату №10093 от 9 января 2023 г..zip'', ''808008eb9f859bc13384fa54f846b88b'', 1, ''4f71f47a-901b-11ed-82b5-00155d000a01'', 0, ''https://orders.cloudpayments.ru/d/YMVceGPs5h0OBok6'', 10093, ''6CC3E3BAE0668E3297D63A943F5C225A'', ''InvoiceId=10093&Email=ovk%40ezan.ac.ru&AccountId=ovk%40ezan.ac.ru&Amount=4812&invoice=CNFS-4%2410%24481.2%244812'')
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 24 page no 3 n bits 72 index PRIMARY of table `revo-test`.`pdf_uploads` trx id 48134 lock_mode X
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0
 0: len 8; hex 73757072656d756d; asc supremum;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 24 page no 3 n bits 72 index PRIMARY of table `revo-test`.`pdf_uploads` trx id 48134 lock_mode X insert intention waiting
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0
 0: len 8; hex 73757072656d756d; asc supremum;;

*** WE ROLL BACK TRANSACTION (2)

Ответы

Ответов пока нет.