mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
43745b7e17
Use suspend thread syncpoint instead of include/wait_condition.inc to
make sure DELETE created waiting lock before the next UPDATE begins
locking.
This is backport of commit 0fa4dd0747
from 10.6.
22 lines
612 B
Text
22 lines
612 B
Text
CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t VALUES (3);
|
|
BEGIN;
|
|
UPDATE t SET a = 2;
|
|
connect con1,localhost,root;
|
|
SET DEBUG_SYNC="lock_wait_suspend_thread_enter SIGNAL del_locked";
|
|
DELETE FROM t;
|
|
connection default;
|
|
SET DEBUG_SYNC="now WAIT_FOR del_locked";
|
|
UPDATE t SET a = 1;
|
|
COMMIT;
|
|
connection con1;
|
|
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
disconnect con1;
|
|
connection default;
|
|
# The above DELETE must delete all the rows in the table, so the
|
|
# following SELECT must show 0 rows.
|
|
SELECT count(*) FROM t;
|
|
count(*)
|
|
1
|
|
SET DEBUG_SYNC="reset";
|
|
DROP TABLE t;
|