From a175314c3e5827eb193872241446f2f8f5c9d33c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 20:07:14 +0200 Subject: Adding upstream version 1:10.5.12. Signed-off-by: Daniel Baumann --- mysql-test/suite/innodb/t/deadlock_detect.test | 67 ++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 mysql-test/suite/innodb/t/deadlock_detect.test (limited to 'mysql-test/suite/innodb/t/deadlock_detect.test') diff --git a/mysql-test/suite/innodb/t/deadlock_detect.test b/mysql-test/suite/innodb/t/deadlock_detect.test new file mode 100644 index 00000000..babdb547 --- /dev/null +++ b/mysql-test/suite/innodb/t/deadlock_detect.test @@ -0,0 +1,67 @@ +# +# wl#9383 INNODB: ADD AN OPTION TO TURN OFF/ON DEADLOCK CHECKER +# + +--source include/have_innodb.inc +--source include/not_embedded.inc +--source include/count_sessions.inc + +SET GLOBAL innodb_deadlock_detect=OFF; +SET GLOBAL innodb_lock_wait_timeout=2; + +connection default; + +CREATE TABLE t1( + id INT, + PRIMARY KEY(id) +) ENGINE=InnoDB; + +INSERT INTO t1 VALUES(1), (2), (3); + +# We are not interested query results, only errors +--disable_result_log +BEGIN; + +SELECT * FROM t1 WHERE id = 1 FOR UPDATE; + +connect (con1,localhost,root,,); + +BEGIN; + +SELECT * FROM t1 WHERE id = 2 FOR UPDATE; + +send SELECT * FROM t1 WHERE id = 1 FOR UPDATE; + +connection default; +send SELECT * FROM t1 WHERE id = 2 FOR UPDATE; + +connection con1; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +ROLLBACK; + +# +# Note here that con1 is the older transaction as it +# query started wait first. Thus, con1 gets lock +# wait timeout first. There is possibility that +# default connection gets lock timeout also or +# as con1 is rolled back it gets the locks it waited +# and does the update. +# +connection default; +--error 0,ER_LOCK_WAIT_TIMEOUT +reap; + +ROLLBACK; + +--enable_result_log + +DROP TABLE t1; + +disconnect con1; + +--source include/wait_until_count_sessions.inc + +SET GLOBAL innodb_lock_wait_timeout=default; +SET GLOBAL innodb_deadlock_detect=default; -- cgit v1.2.3