mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Revert "MDEV-30473 : Do not allow GET_LOCK() / RELEASE_LOCK() in cluster"
This reverts commit b05218e08f
.
This commit is contained in:
parent
0fd54c9892
commit
eb472f77e3
4 changed files with 97 additions and 0 deletions
23
mysql-test/suite/galera/r/MDEV-24143.result
Normal file
23
mysql-test/suite/galera/r/MDEV-24143.result
Normal file
|
@ -0,0 +1,23 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
CREATE TABLE t1 (c1 BIGINT NOT NULL PRIMARY KEY, c2 BINARY (10), c3 DATETIME);
|
||||
SELECT get_lock ('test2', 0);
|
||||
get_lock ('test2', 0)
|
||||
1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SET SESSION wsrep_trx_fragment_size=10;
|
||||
SET SESSION autocommit=0;
|
||||
SELECT * FROM t1 WHERE c1 <=0 ORDER BY c1 DESC;
|
||||
c1
|
||||
INSERT INTO t1 VALUES (4),(3),(1),(2);
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=SEQUENCE;
|
||||
ERROR 42S01: Table 't1' already exists
|
||||
ALTER TABLE t1 DROP COLUMN c2;
|
||||
ERROR 42000: Can't DROP COLUMN `c2`; check that it exists
|
||||
SELECT get_lock ('test', 1.5);
|
||||
get_lock ('test', 1.5)
|
||||
1
|
||||
DROP TABLE t1;
|
18
mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
Normal file
18
mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
Normal file
|
@ -0,0 +1,18 @@
|
|||
connection node_2;
|
||||
connection node_1;
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
|
||||
connection node_2a;
|
||||
SELECT GET_LOCK("foo", 1000);
|
||||
GET_LOCK("foo", 1000)
|
||||
1
|
||||
connection node_2;
|
||||
SET AUTOCOMMIT=OFF;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SELECT GET_LOCK("foo", 1000);;
|
||||
connection node_1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
connection node_2;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
wsrep_local_aborts_increment
|
||||
1
|
||||
DROP TABLE t1;
|
20
mysql-test/suite/galera/t/MDEV-24143.test
Normal file
20
mysql-test/suite/galera/t/MDEV-24143.test
Normal file
|
@ -0,0 +1,20 @@
|
|||
--source include/galera_cluster.inc
|
||||
--source include/have_sequence.inc
|
||||
|
||||
CREATE TABLE t1 (c1 BIGINT NOT NULL PRIMARY KEY, c2 BINARY (10), c3 DATETIME);
|
||||
SELECT get_lock ('test2', 0);
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
SET SESSION wsrep_trx_fragment_size=10;
|
||||
SET SESSION autocommit=0;
|
||||
SELECT * FROM t1 WHERE c1 <=0 ORDER BY c1 DESC;
|
||||
--error ER_LOCK_DEADLOCK
|
||||
INSERT INTO t1 VALUES (4),(3),(1),(2);
|
||||
--error ER_TABLE_EXISTS_ERROR
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=SEQUENCE;
|
||||
--error ER_CANT_DROP_FIELD_OR_KEY
|
||||
ALTER TABLE t1 DROP COLUMN c2;
|
||||
SELECT get_lock ('test', 1.5);
|
||||
DROP TABLE t1;
|
||||
|
36
mysql-test/suite/galera/t/galera_bf_abort_get_lock.test
Normal file
36
mysql-test/suite/galera/t/galera_bf_abort_get_lock.test
Normal file
|
@ -0,0 +1,36 @@
|
|||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
#
|
||||
# Test a local transaction being aborted by a slave one while it is running a GET_LOCK()
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
|
||||
|
||||
--let $galera_connection_name = node_2a
|
||||
--let $galera_server_number = 2
|
||||
--source include/galera_connect.inc
|
||||
--connection node_2a
|
||||
SELECT GET_LOCK("foo", 1000);
|
||||
|
||||
--connection node_2
|
||||
SET AUTOCOMMIT=OFF;
|
||||
--let $wsrep_local_bf_aborts_before = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
|
||||
INSERT INTO t1 VALUES (1);
|
||||
--send SELECT GET_LOCK("foo", 1000);
|
||||
|
||||
--connection node_1
|
||||
INSERT INTO t1 VALUES (1);
|
||||
|
||||
--connection node_2
|
||||
--error ER_LOCK_DEADLOCK
|
||||
--reap
|
||||
|
||||
--let $wsrep_local_bf_aborts_after = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_bf_aborts'`
|
||||
|
||||
# Check that wsrep_local_bf_aborts has been incremented by exactly 1
|
||||
--disable_query_log
|
||||
--eval SELECT $wsrep_local_bf_aborts_after - $wsrep_local_bf_aborts_before = 1 AS wsrep_local_aborts_increment;
|
||||
--enable_query_log
|
||||
|
||||
DROP TABLE t1;
|
Loading…
Add table
Reference in a new issue