diff options
author | Vasil Dimov <vasil.dimov@oracle.com> | 2012-11-12 14:24:43 +0200 |
---|---|---|
committer | Vasil Dimov <vasil.dimov@oracle.com> | 2012-11-12 14:24:43 +0200 |
commit | 04195c30c1ec09337930e1a7e16e5c9a8333b084 (patch) | |
tree | c039bb3692aecb1cc575bdb5bab3762f2c15a07d /mysql-test | |
parent | 51d01d751784da224d128c6f7c9a9631b3eef9a0 (diff) | |
download | mariadb-git-04195c30c1ec09337930e1a7e16e5c9a8333b084.tar.gz |
This is a backport of "WL#5674 InnoDB: report all deadlocks (Bug#1784)"
from MySQL 5.6 into MySQL 5.5
Will close Bug#14515889 BACKPORT OF INNODB DEADLOCK LOGGING TO 5.5
The original implementation is in
vasil.dimov@oracle.com-20101213120811-k2ldtnao2t6zrxfn
Approved by: Jimmy (rb:1535)
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/suite/sys_vars/r/innodb_print_all_deadlocks_basic.result | 22 | ||||
-rw-r--r-- | mysql-test/suite/sys_vars/t/innodb_print_all_deadlocks_basic.test | 48 |
2 files changed, 70 insertions, 0 deletions
diff --git a/mysql-test/suite/sys_vars/r/innodb_print_all_deadlocks_basic.result b/mysql-test/suite/sys_vars/r/innodb_print_all_deadlocks_basic.result new file mode 100644 index 00000000000..1bd078dfd7e --- /dev/null +++ b/mysql-test/suite/sys_vars/r/innodb_print_all_deadlocks_basic.result @@ -0,0 +1,22 @@ +SELECT @@innodb_print_all_deadlocks; +@@innodb_print_all_deadlocks +0 +SET GLOBAL innodb_print_all_deadlocks=1; +CREATE TABLE t1 (c1 INT, PRIMARY KEY (c1)) ENGINE=INNODB; +INSERT INTO t1 VALUES (123); +CREATE TABLE t2 (c2 INT, PRIMARY KEY (c2)) ENGINE=INNODB; +INSERT INTO t2 VALUES (456); +BEGIN; +SELECT * FROM t1 FOR UPDATE; +c1 +123 +BEGIN; +SELECT * FROM t2 FOR UPDATE; +c2 +456 +SELECT * FROM t2 FOR UPDATE; +SELECT * FROM t1 FOR UPDATE; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +DROP TABLE t2; +DROP TABLE t1; +SET GLOBAL innodb_print_all_deadlocks=default; diff --git a/mysql-test/suite/sys_vars/t/innodb_print_all_deadlocks_basic.test b/mysql-test/suite/sys_vars/t/innodb_print_all_deadlocks_basic.test new file mode 100644 index 00000000000..5ad0ae485e0 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/innodb_print_all_deadlocks_basic.test @@ -0,0 +1,48 @@ +# +# innodb_print_all_deadlocks +# + +-- source include/have_innodb.inc + +SELECT @@innodb_print_all_deadlocks; + +SET GLOBAL innodb_print_all_deadlocks=1; + +CREATE TABLE t1 (c1 INT, PRIMARY KEY (c1)) ENGINE=INNODB; +INSERT INTO t1 VALUES (123); + +CREATE TABLE t2 (c2 INT, PRIMARY KEY (c2)) ENGINE=INNODB; +INSERT INTO t2 VALUES (456); + +-- connect (con1,localhost,root,,) +-- connect (con2,localhost,root,,) + +-- connection con1 +BEGIN; +SELECT * FROM t1 FOR UPDATE; + +-- connection con2 +BEGIN; +SELECT * FROM t2 FOR UPDATE; + +-- connection con1 +-- send +SELECT * FROM t2 FOR UPDATE; + +-- connection con2 +let $wait_condition= +SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST +WHERE state = 'Sending data' AND info = 'SELECT * FROM t2 FOR UPDATE'; +-- source include/wait_condition.inc +-- error ER_LOCK_DEADLOCK +SELECT * FROM t1 FOR UPDATE; + +-- connection default + +-- disconnect con1 +-- disconnect con2 + +DROP TABLE t2; +DROP TABLE t1; + +SET GLOBAL innodb_print_all_deadlocks=default; |