1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-24738: Extend the test innodb.deadlock_detect

This commit is contained in:
Marko Mäkelä
2021-02-15 17:21:42 +02:00
parent 272a1289ad
commit 3ddb4fddf1
3 changed files with 36 additions and 21 deletions

View File

@ -3,11 +3,9 @@
#
--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;
let $have_deadlock=`select @@GLOBAL.innodb_deadlock_detect`;
connection default;
@ -22,24 +20,33 @@ INSERT INTO t1 VALUES(1), (2), (3);
--disable_result_log
BEGIN;
SELECT * FROM t1 WHERE id = 1 FOR UPDATE;
SELECT * FROM t1 WHERE id = 1 LOCK IN SHARE MODE;
connect (con1,localhost,root,,);
BEGIN;
SELECT * FROM t1 WHERE id = 2 LOCK IN SHARE MODE;
SELECT * FROM t1 WHERE id = 2 FOR UPDATE;
connect (con2,localhost,root,,);
BEGIN;
SELECT * FROM t1 WHERE id = 2 LOCK IN SHARE MODE;
send SELECT * FROM t1 WHERE id = 1 FOR UPDATE;
connection default;
send SELECT * FROM t1 WHERE id = 2 FOR UPDATE;
connection con1;
connection con2;
if (!$have_deadlock) {
--error ER_LOCK_WAIT_TIMEOUT
reap;
}
if ($have_deadlock) {
--error 0,ER_LOCK_DEADLOCK
reap;
}
ROLLBACK;
disconnect con2;
disconnect con1;
#
# Note here that con1 is the older transaction as it
@ -50,8 +57,14 @@ ROLLBACK;
# and does the update.
#
connection default;
if (!$have_deadlock) {
--error 0,ER_LOCK_WAIT_TIMEOUT
reap;
}
if ($have_deadlock) {
--error 0,ER_LOCK_DEADLOCK
reap;
}
ROLLBACK;
@ -59,9 +72,4 @@ ROLLBACK;
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;