mirror of
https://github.com/MariaDB/server.git
synced 2025-07-08 17:02:21 +03:00
MDEV-11168: InnoDB: Failing assertion: !other_lock || wsrep_thd_is_BF(lock->trx->mysql_thd, FALSE) || wsrep_thd_is_BF(other_lock->trx->mysql_thd, FALSE)
Problem was that we moved lock request to head of lock queue even when lock request has to wait.
This commit is contained in:
109
mysql-test/suite/innodb/r/innodb-lock-schedule-algorithm.result
Normal file
109
mysql-test/suite/innodb/r/innodb-lock-schedule-algorithm.result
Normal file
@ -0,0 +1,109 @@
|
||||
CREATE TABLE t1 (i1 INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE TABLE t2 (i2 int) ENGINE=MyISAM;
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
connect con1,localhost,root,,test;
|
||||
connection con1;
|
||||
BEGIN;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
SELECT * from t1;
|
||||
i1
|
||||
1
|
||||
2
|
||||
UPDATE t1 SET i1 = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
COMMIT;
|
||||
connection default;
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
i1
|
||||
SELECT * FROM t2;
|
||||
i2
|
||||
1
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
disconnect con1;
|
||||
CREATE TABLE t1 (i1 INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE TABLE t2 (i2 int) ENGINE=MyISAM;
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
connect con1,localhost,root,,test;
|
||||
connection con1;
|
||||
BEGIN;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
SELECT * FROM t1;
|
||||
i1
|
||||
1
|
||||
2
|
||||
UPDATE t1 SET i1 = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
connection default;
|
||||
COMMIT;
|
||||
connection con1;
|
||||
COMMIT;
|
||||
connection default;
|
||||
SELECT * FROM t1;
|
||||
i1
|
||||
SELECT * FROM t2;
|
||||
i2
|
||||
1
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
disconnect con1;
|
||||
# "restart: --loose-innodb-lock-schedule-algorithm=FCFS"
|
||||
CREATE TABLE t1 (i1 INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE TABLE t2 (i2 int) ENGINE=MyISAM;
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
connect con1,localhost,root,,test;
|
||||
connection con1;
|
||||
BEGIN;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
SELECT * from t1;
|
||||
i1
|
||||
1
|
||||
2
|
||||
UPDATE t1 SET i1 = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
COMMIT;
|
||||
connection default;
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
i1
|
||||
SELECT * FROM t2;
|
||||
i2
|
||||
1
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
disconnect con1;
|
||||
CREATE TABLE t1 (i1 INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE TABLE t2 (i2 int) ENGINE=MyISAM;
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
connect con1,localhost,root,,test;
|
||||
connection con1;
|
||||
BEGIN;
|
||||
INSERT INTO t2 VALUES (1),(2);
|
||||
SELECT * FROM t1;
|
||||
i1
|
||||
1
|
||||
2
|
||||
UPDATE t1 SET i1 = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
connection default;
|
||||
COMMIT;
|
||||
connection con1;
|
||||
COMMIT;
|
||||
connection default;
|
||||
SELECT * FROM t1;
|
||||
i1
|
||||
SELECT * FROM t2;
|
||||
i2
|
||||
1
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
disconnect con1;
|
Reference in New Issue
Block a user