mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 12:01:42 +01:00
502b4ea47f
Bug #22876 Four-way deadlock This bug was fixed as a part of Bug#989 "If DROP TABLE while there's an active transaction, wrong binlog order" A statement which would have caused circular wait will now be aborted with ER_LOCK_DEADLOCK. Test case based on bug description added to innodb_mysql_lock.test. Note that innodb_lock_wait_timeout is set to 5 mins to prevent race conditions in the test.
24 lines
608 B
Text
24 lines
608 B
Text
#
|
|
# Bug #22876 Four-way deadlock
|
|
#
|
|
DROP TABLE IF EXISTS t1;
|
|
# Connection 1
|
|
set @@autocommit=0;
|
|
CREATE TABLE t1(s1 INT UNIQUE) ENGINE=innodb;
|
|
INSERT INTO t1 VALUES (1);
|
|
# Connection 2
|
|
set @@autocommit=0;
|
|
INSERT INTO t1 VALUES (2);
|
|
INSERT INTO t1 VALUES (1);
|
|
# Connection 3
|
|
set @@autocommit=0;
|
|
DROP TABLE t1;
|
|
# Connection 1
|
|
# Connection 1 is now holding the lock.
|
|
# Issuing insert from connection 1 while connection 2&3
|
|
# is waiting for the lock should give a deadlock error.
|
|
INSERT INTO t1 VALUES (2);
|
|
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
# Cleanup
|
|
commit;
|
|
commit;
|