mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-24947 : Remove parameter wsrep_replicate_myisam
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
|
||||||
--let $galera_variables_ok = `SELECT COUNT(*) = 50 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'`
|
--let $galera_variables_ok = `SELECT COUNT(*) = 49 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'`
|
||||||
|
|
||||||
--if (!$galera_variables_ok) {
|
--if (!$galera_variables_ok) {
|
||||||
--skip Galera number of variables has changed!
|
--skip Galera number of variables has changed!
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--disable_query_log
|
--disable_query_log
|
||||||
|
|
||||||
--let $galera_variables_ok = `SELECT COUNT(*) = 51 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'`
|
--let $galera_variables_ok = `SELECT COUNT(*) = 50 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'`
|
||||||
|
|
||||||
--if (!$galera_variables_ok) {
|
--if (!$galera_variables_ok) {
|
||||||
--skip Galera number of variables has changed!
|
--skip Galera number of variables has changed!
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
--require suite/galera/r/have_wsrep_replicate_myisam.require
|
|
||||||
disable_query_log;
|
|
||||||
SHOW VARIABLES LIKE 'wsrep_replicate_myisam';
|
|
||||||
enable_query_log;
|
|
@ -1,47 +0,0 @@
|
|||||||
connection node_2;
|
|
||||||
connection node_1;
|
|
||||||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 CHAR(20) DEFAULT 'abc') ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 (f1) VALUES (1);
|
|
||||||
CREATE TABLE t2 (f1 CHAR(20)) ENGINE=InnoDB;
|
|
||||||
CREATE PROCEDURE proc_update ()
|
|
||||||
BEGIN
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
|
|
||||||
SET SESSION wsrep_sync_wait = 0;
|
|
||||||
WHILE 1 DO
|
|
||||||
UPDATE t1 SET f2 = LEFT(MD5(RAND()), 4);
|
|
||||||
END WHILE;
|
|
||||||
END|
|
|
||||||
connect node_1X, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
||||||
connection node_1X;
|
|
||||||
CALL proc_update();;
|
|
||||||
connection node_1;
|
|
||||||
call mtr.add_suppression("WSREP: Wait for gtid returned error 3 while waiting for prior transactions to commit before setting position");
|
|
||||||
connection node_2;
|
|
||||||
call mtr.add_suppression("WSREP: Wait for gtid returned error 3 while waiting for prior transactions to commit before setting position");
|
|
||||||
SET SESSION wsrep_retry_autocommit = 0;
|
|
||||||
connection node_1;
|
|
||||||
connection node_1X;
|
|
||||||
Got one of the listed errors
|
|
||||||
connection node_1;
|
|
||||||
DROP PROCEDURE proc_update;
|
|
||||||
DROP TABLE t1, t2;
|
|
||||||
CALL mtr.add_suppression("conflict state ABORTED after post commit");
|
|
||||||
connection node_1;
|
|
||||||
CREATE TABLE t1 (i int primary key, j int) engine=innodb;
|
|
||||||
INSERT INTO t1 values (1,0);
|
|
||||||
BEGIN;
|
|
||||||
UPDATE t1 SET j=1 WHERE i=1;
|
|
||||||
connection node_2;
|
|
||||||
UPDATE t1 SET j=2 WHERE i=1;
|
|
||||||
connection node_1;
|
|
||||||
COMMIT;
|
|
||||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
||||||
SELECT * FROM t1;
|
|
||||||
i j
|
|
||||||
1 2
|
|
||||||
connection node_2;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
i j
|
|
||||||
1 2
|
|
||||||
connection node_1;
|
|
||||||
DROP TABLE t1;
|
|
@ -1,25 +0,0 @@
|
|||||||
connection node_2;
|
|
||||||
connection node_1;
|
|
||||||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 CHAR(20) DEFAULT 'abc') ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 (f1) VALUES (1);
|
|
||||||
CREATE TABLE t2 (f1 CHAR(20)) ENGINE=InnoDB;
|
|
||||||
CREATE PROCEDURE proc_update ()
|
|
||||||
BEGIN
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
|
|
||||||
SET SESSION wsrep_sync_wait = 0;
|
|
||||||
WHILE 1 DO
|
|
||||||
UPDATE t1 SET f2 = LEFT(MD5(RAND()), 4);
|
|
||||||
END WHILE;
|
|
||||||
END|
|
|
||||||
connect node_1X, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
||||||
connection node_1X;
|
|
||||||
CALL proc_update();;
|
|
||||||
connection node_2;
|
|
||||||
SET SESSION wsrep_retry_autocommit = 0;
|
|
||||||
connection node_1;
|
|
||||||
connection node_1X;
|
|
||||||
Got one of the listed errors
|
|
||||||
connection node_1;
|
|
||||||
DROP PROCEDURE proc_update;
|
|
||||||
DROP TABLE t1, t2;
|
|
||||||
CALL mtr.add_suppression("conflict state ABORTED after post commit");
|
|
@ -1,25 +0,0 @@
|
|||||||
connection node_2;
|
|
||||||
connection node_1;
|
|
||||||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 CHAR(20) DEFAULT 'abc') ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 (f1) VALUES (1);
|
|
||||||
CREATE TABLE t2 (f1 CHAR(20)) ENGINE=InnoDB;
|
|
||||||
CREATE PROCEDURE proc_update ()
|
|
||||||
BEGIN
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
|
|
||||||
SET SESSION wsrep_sync_wait = 0;
|
|
||||||
WHILE 1 DO
|
|
||||||
UPDATE t1 SET f2 = LEFT(MD5(RAND()), 4);
|
|
||||||
END WHILE;
|
|
||||||
END|
|
|
||||||
connect node_1X, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
||||||
connection node_1X;
|
|
||||||
CALL proc_update();;
|
|
||||||
connection node_2;
|
|
||||||
SET SESSION wsrep_retry_autocommit = 10000;
|
|
||||||
connection node_1;
|
|
||||||
connection node_1X;
|
|
||||||
Got one of the listed errors
|
|
||||||
connection node_1;
|
|
||||||
DROP PROCEDURE proc_update;
|
|
||||||
DROP TABLE t1, t2;
|
|
||||||
CALL mtr.add_suppression("conflict state ABORTED after post commit");
|
|
@ -1,22 +0,0 @@
|
|||||||
connection node_2;
|
|
||||||
connection node_1;
|
|
||||||
CREATE TABLE t1 (i INT) ENGINE = InnoDB;
|
|
||||||
INSERT INTO t1 (i) VALUES(1);
|
|
||||||
CREATE TABLE t2 (i INT) ENGINE = InnoDB;
|
|
||||||
connection node_1;
|
|
||||||
SET AUTOCOMMIT=OFF;
|
|
||||||
START TRANSACTION;
|
|
||||||
SELECT * FROM t1 WHERE i = 1 LOCK IN SHARE MODE;
|
|
||||||
i
|
|
||||||
1
|
|
||||||
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
||||||
connection node_1a;
|
|
||||||
SET AUTOCOMMIT=OFF;
|
|
||||||
START TRANSACTION;
|
|
||||||
INSERT IGNORE INTO t2 SELECT * FROM t1 WHERE i = 1 FOR UPDATE;;
|
|
||||||
connection node_1;
|
|
||||||
DELETE FROM t1 WHERE i = 1;
|
|
||||||
COMMIT;
|
|
||||||
connection node_1a;
|
|
||||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
||||||
DROP TABLE t1, t2;
|
|
@ -1,22 +0,0 @@
|
|||||||
connection node_2;
|
|
||||||
connection node_1;
|
|
||||||
create table t1 (i int primary key, j int) engine=innodb;
|
|
||||||
create table t2 (i int primary key, j int) engine=innodb;
|
|
||||||
insert into t1 values (1,0);
|
|
||||||
insert into t2 values (2,0);
|
|
||||||
set autocommit=off;
|
|
||||||
start transaction;
|
|
||||||
update t1 set j=1 where i=1;
|
|
||||||
connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
|
||||||
connection node_1a;
|
|
||||||
set autocommit=off;
|
|
||||||
start transaction;
|
|
||||||
begin;
|
|
||||||
update t2 set j=1 where i=2;
|
|
||||||
connection node_1;
|
|
||||||
insert into t1 select * from t2;;
|
|
||||||
connection node_1a;
|
|
||||||
insert into t2 select * from t1;
|
|
||||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
||||||
connection node_1;
|
|
||||||
DROP TABLE t1, t2;
|
|
@ -3,7 +3,7 @@ connection node_1;
|
|||||||
# Correct Galera library found
|
# Correct Galera library found
|
||||||
SELECT COUNT(*) `expect 50` FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_%';
|
SELECT COUNT(*) `expect 50` FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep_%';
|
||||||
expect 50
|
expect 50
|
||||||
50
|
49
|
||||||
SELECT VARIABLE_NAME, VARIABLE_VALUE
|
SELECT VARIABLE_NAME, VARIABLE_VALUE
|
||||||
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||||||
WHERE VARIABLE_NAME LIKE 'wsrep_%'
|
WHERE VARIABLE_NAME LIKE 'wsrep_%'
|
||||||
@ -47,7 +47,6 @@ WSREP_ON ON
|
|||||||
WSREP_OSU_METHOD TOI
|
WSREP_OSU_METHOD TOI
|
||||||
WSREP_RECOVER OFF
|
WSREP_RECOVER OFF
|
||||||
WSREP_REJECT_QUERIES NONE
|
WSREP_REJECT_QUERIES NONE
|
||||||
WSREP_REPLICATE_MYISAM OFF
|
|
||||||
WSREP_RESTART_SLAVE OFF
|
WSREP_RESTART_SLAVE OFF
|
||||||
WSREP_RETRY_AUTOCOMMIT 1
|
WSREP_RETRY_AUTOCOMMIT 1
|
||||||
WSREP_SLAVE_FK_CHECKS ON
|
WSREP_SLAVE_FK_CHECKS ON
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
#
|
|
||||||
# Cleanup for MW-328 tests
|
|
||||||
#
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
--disable_query_log
|
|
||||||
--eval KILL CONNECTION $sp_connection_id
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--connection node_1X
|
|
||||||
--error 2013,1317
|
|
||||||
--reap
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
DROP PROCEDURE proc_update;
|
|
||||||
DROP TABLE t1, t2;
|
|
||||||
|
|
||||||
CALL mtr.add_suppression("conflict state ABORTED after post commit");
|
|
@ -1,29 +0,0 @@
|
|||||||
#
|
|
||||||
# Initialization for MW-328 tests
|
|
||||||
#
|
|
||||||
|
|
||||||
CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT PRIMARY KEY, f2 CHAR(20) DEFAULT 'abc') ENGINE=InnoDB;
|
|
||||||
INSERT INTO t1 (f1) VALUES (1);
|
|
||||||
|
|
||||||
CREATE TABLE t2 (f1 CHAR(20)) ENGINE=InnoDB;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Have some random updates going on against t1
|
|
||||||
#
|
|
||||||
|
|
||||||
DELIMITER |;
|
|
||||||
CREATE PROCEDURE proc_update ()
|
|
||||||
BEGIN
|
|
||||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END;
|
|
||||||
SET SESSION wsrep_sync_wait = 0;
|
|
||||||
WHILE 1 DO
|
|
||||||
UPDATE t1 SET f2 = LEFT(MD5(RAND()), 4);
|
|
||||||
END WHILE;
|
|
||||||
END|
|
|
||||||
|
|
||||||
DELIMITER ;|
|
|
||||||
|
|
||||||
--connect node_1X, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
|
||||||
--connection node_1X
|
|
||||||
--let $sp_connection_id = `SELECT CONNECTION_ID()`
|
|
||||||
--send CALL proc_update();
|
|
@ -1,7 +0,0 @@
|
|||||||
!include ../galera_2nodes.cnf
|
|
||||||
|
|
||||||
[mysqld.1]
|
|
||||||
wsrep-debug=SERVER
|
|
||||||
|
|
||||||
[mysqld.2]
|
|
||||||
wsrep-debug=SERVER
|
|
@ -1,82 +0,0 @@
|
|||||||
#
|
|
||||||
# MW-328 Fix unnecessary/silent BF aborts
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# test phase 1 is not deterministic
|
|
||||||
#
|
|
||||||
# Here we attempt to insert into t2 and check if insert actually
|
|
||||||
# inserted rows if a success was reported.
|
|
||||||
#
|
|
||||||
# However, deadlocks may or may not happen in this test execution
|
|
||||||
# it all depends on timing.
|
|
||||||
#
|
|
||||||
|
|
||||||
--source include/galera_cluster.inc
|
|
||||||
--source include/force_restart.inc
|
|
||||||
--source suite/galera/t/MW-328-header.inc
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
call mtr.add_suppression("WSREP: Wait for gtid returned error 3 while waiting for prior transactions to commit before setting position");
|
|
||||||
|
|
||||||
--connection node_2
|
|
||||||
call mtr.add_suppression("WSREP: Wait for gtid returned error 3 while waiting for prior transactions to commit before setting position");
|
|
||||||
--let $count = 100
|
|
||||||
--let $successes = 0
|
|
||||||
--let $deadlocks = 0
|
|
||||||
|
|
||||||
SET SESSION wsrep_retry_autocommit = 0;
|
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
|
|
||||||
while ($count)
|
|
||||||
{
|
|
||||||
TRUNCATE TABLE t2;
|
|
||||||
|
|
||||||
--error 0,ER_LOCK_DEADLOCK
|
|
||||||
INSERT IGNORE INTO t2 SELECT f2 FROM t1;
|
|
||||||
if ($mysql_errno != 1213) {
|
|
||||||
--inc $successes
|
|
||||||
if (`SELECT COUNT(*) = 0 FROM t2`) {
|
|
||||||
--die No rows arrived in table t2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($mysql_errno == 1213) {
|
|
||||||
--inc $deadlocks
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
--dec $count
|
|
||||||
}
|
|
||||||
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
|
|
||||||
--source suite/galera/t/MW-328-footer.inc
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test phase 2 is deterministic
|
|
||||||
# Here we generate a sure conflict in node 1 and verify that
|
|
||||||
# insert failed in both nodes
|
|
||||||
#
|
|
||||||
--connection node_1
|
|
||||||
CREATE TABLE t1 (i int primary key, j int) engine=innodb;
|
|
||||||
INSERT INTO t1 values (1,0);
|
|
||||||
|
|
||||||
BEGIN;
|
|
||||||
UPDATE t1 SET j=1 WHERE i=1;
|
|
||||||
|
|
||||||
--connection node_2
|
|
||||||
UPDATE t1 SET j=2 WHERE i=1;
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
--error ER_LOCK_DEADLOCK
|
|
||||||
COMMIT;
|
|
||||||
|
|
||||||
SELECT * FROM t1;
|
|
||||||
--connection node_2
|
|
||||||
SELECT * FROM t1;
|
|
||||||
--connection node_1
|
|
||||||
|
|
||||||
DROP TABLE t1;
|
|
@ -1,7 +0,0 @@
|
|||||||
!include ../galera_2nodes.cnf
|
|
||||||
|
|
||||||
[mysqld.1]
|
|
||||||
wsrep-debug=SERVER
|
|
||||||
|
|
||||||
[mysqld.2]
|
|
||||||
wsrep-debug=SERVER
|
|
@ -1,36 +0,0 @@
|
|||||||
#
|
|
||||||
# MW-328 Fix unnecessary/silent BF aborts
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make sure an unrelated SELECT following a BF-aborted query never
|
|
||||||
# gets the deadlock error
|
|
||||||
#
|
|
||||||
|
|
||||||
--source include/galera_cluster.inc
|
|
||||||
--source include/force_restart.inc
|
|
||||||
--source suite/galera/t/MW-328-header.inc
|
|
||||||
|
|
||||||
--connection node_2
|
|
||||||
--let $count = 100
|
|
||||||
|
|
||||||
SET SESSION wsrep_retry_autocommit = 0;
|
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
|
|
||||||
while ($count)
|
|
||||||
{
|
|
||||||
--error 0,1213
|
|
||||||
INSERT IGNORE INTO t2 SELECT f2 FROM t1;
|
|
||||||
|
|
||||||
--disable_result_log
|
|
||||||
--error 0
|
|
||||||
SELECT 1 FROM DUAL;
|
|
||||||
--enable_result_log
|
|
||||||
|
|
||||||
--dec $count
|
|
||||||
}
|
|
||||||
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--source suite/galera/t/MW-328-footer.inc
|
|
@ -1,7 +0,0 @@
|
|||||||
!include ../galera_2nodes.cnf
|
|
||||||
|
|
||||||
[mysqld.1]
|
|
||||||
wsrep-debug=SERVER
|
|
||||||
|
|
||||||
[mysqld.2]
|
|
||||||
wsrep-debug=SERVER
|
|
@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# MW-328 Fix unnecessary/silent BF aborts
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make sure that a high value of wsrep_retry_autocommit
|
|
||||||
# masks all deadlock errors
|
|
||||||
#
|
|
||||||
|
|
||||||
--source include/galera_cluster.inc
|
|
||||||
--source suite/galera/t/MW-328-header.inc
|
|
||||||
|
|
||||||
--connection node_2
|
|
||||||
--let $count = 100
|
|
||||||
|
|
||||||
SET SESSION wsrep_retry_autocommit = 10000;
|
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
|
|
||||||
while ($count)
|
|
||||||
{
|
|
||||||
--error 0
|
|
||||||
INSERT IGNORE INTO t2 SELECT f2 FROM t1;
|
|
||||||
|
|
||||||
--disable_result_log
|
|
||||||
--error 0
|
|
||||||
SELECT 1 FROM DUAL;
|
|
||||||
--enable_result_log
|
|
||||||
|
|
||||||
--dec $count
|
|
||||||
}
|
|
||||||
|
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--source suite/galera/t/MW-328-footer.inc
|
|
@ -1,7 +0,0 @@
|
|||||||
!include ../galera_2nodes.cnf
|
|
||||||
|
|
||||||
[mysqld.1]
|
|
||||||
wsrep-debug=SERVER
|
|
||||||
|
|
||||||
[mysqld.2]
|
|
||||||
wsrep-debug=SERVER
|
|
@ -1,39 +0,0 @@
|
|||||||
#
|
|
||||||
# MW-328 Fix unnecessary/silent BF aborts
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test that non-Galera deadlock error still behaves as expected
|
|
||||||
#
|
|
||||||
|
|
||||||
--source include/galera_cluster.inc
|
|
||||||
|
|
||||||
CREATE TABLE t1 (i INT) ENGINE = InnoDB;
|
|
||||||
INSERT INTO t1 (i) VALUES(1);
|
|
||||||
|
|
||||||
CREATE TABLE t2 (i INT) ENGINE = InnoDB;
|
|
||||||
|
|
||||||
# Create a deadlock situation
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
SET AUTOCOMMIT=OFF;
|
|
||||||
START TRANSACTION;
|
|
||||||
SELECT * FROM t1 WHERE i = 1 LOCK IN SHARE MODE;
|
|
||||||
|
|
||||||
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
|
||||||
--connection node_1a
|
|
||||||
SET AUTOCOMMIT=OFF;
|
|
||||||
START TRANSACTION;
|
|
||||||
--send INSERT IGNORE INTO t2 SELECT * FROM t1 WHERE i = 1 FOR UPDATE;
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
--sleep 2
|
|
||||||
DELETE FROM t1 WHERE i = 1;
|
|
||||||
COMMIT;
|
|
||||||
|
|
||||||
# We expect that ER_LOCK_DEADLOCK will be delivered even though it was a INSERT INGORE statement
|
|
||||||
--connection node_1a
|
|
||||||
--error ER_LOCK_DEADLOCK
|
|
||||||
--reap
|
|
||||||
|
|
||||||
DROP TABLE t1, t2;
|
|
@ -1,7 +0,0 @@
|
|||||||
!include ../galera_2nodes.cnf
|
|
||||||
|
|
||||||
[mysqld.1]
|
|
||||||
wsrep-debug=SERVER
|
|
||||||
|
|
||||||
[mysqld.2]
|
|
||||||
wsrep-debug=SERVER
|
|
@ -1,40 +0,0 @@
|
|||||||
#
|
|
||||||
# MW-328 Fix unnecessary/silent BF aborts
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Test that non-Galera deadlock error still behaves as expected (case #2)
|
|
||||||
#
|
|
||||||
|
|
||||||
--source include/galera_cluster.inc
|
|
||||||
|
|
||||||
create table t1 (i int primary key, j int) engine=innodb;
|
|
||||||
create table t2 (i int primary key, j int) engine=innodb;
|
|
||||||
|
|
||||||
insert into t1 values (1,0);
|
|
||||||
insert into t2 values (2,0);
|
|
||||||
|
|
||||||
set autocommit=off;
|
|
||||||
start transaction;
|
|
||||||
update t1 set j=1 where i=1;
|
|
||||||
|
|
||||||
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
|
|
||||||
--connection node_1a
|
|
||||||
set autocommit=off;
|
|
||||||
start transaction;
|
|
||||||
begin;
|
|
||||||
update t2 set j=1 where i=2;
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
# Hang expected here
|
|
||||||
--send insert into t1 select * from t2;
|
|
||||||
|
|
||||||
--sleep 2
|
|
||||||
--connection node_1a
|
|
||||||
--error ER_LOCK_DEADLOCK
|
|
||||||
insert into t2 select * from t1;
|
|
||||||
|
|
||||||
--connection node_1
|
|
||||||
--reap
|
|
||||||
|
|
||||||
DROP TABLE t1, t2;
|
|
@ -526,21 +526,6 @@ ENUM_VALUE_LIST NONE,ALL,ALL_KILL
|
|||||||
READ_ONLY NO
|
READ_ONLY NO
|
||||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
COMMAND_LINE_ARGUMENT OPTIONAL
|
||||||
GLOBAL_VALUE_PATH NULL
|
GLOBAL_VALUE_PATH NULL
|
||||||
VARIABLE_NAME WSREP_REPLICATE_MYISAM
|
|
||||||
SESSION_VALUE NULL
|
|
||||||
GLOBAL_VALUE OFF
|
|
||||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
|
||||||
DEFAULT_VALUE OFF
|
|
||||||
VARIABLE_SCOPE GLOBAL
|
|
||||||
VARIABLE_TYPE BOOLEAN
|
|
||||||
VARIABLE_COMMENT To enable myisam replication
|
|
||||||
NUMERIC_MIN_VALUE NULL
|
|
||||||
NUMERIC_MAX_VALUE NULL
|
|
||||||
NUMERIC_BLOCK_SIZE NULL
|
|
||||||
ENUM_VALUE_LIST OFF,ON
|
|
||||||
READ_ONLY NO
|
|
||||||
COMMAND_LINE_ARGUMENT OPTIONAL
|
|
||||||
GLOBAL_VALUE_PATH NULL
|
|
||||||
VARIABLE_NAME WSREP_RESTART_SLAVE
|
VARIABLE_NAME WSREP_RESTART_SLAVE
|
||||||
SESSION_VALUE NULL
|
SESSION_VALUE NULL
|
||||||
GLOBAL_VALUE OFF
|
GLOBAL_VALUE OFF
|
||||||
|
@ -123,7 +123,6 @@ WSREP_PROVIDER
|
|||||||
WSREP_PROVIDER_OPTIONS
|
WSREP_PROVIDER_OPTIONS
|
||||||
WSREP_RECOVER
|
WSREP_RECOVER
|
||||||
WSREP_REJECT_QUERIES
|
WSREP_REJECT_QUERIES
|
||||||
WSREP_REPLICATE_MYISAM
|
|
||||||
WSREP_RESTART_SLAVE
|
WSREP_RESTART_SLAVE
|
||||||
WSREP_RETRY_AUTOCOMMIT
|
WSREP_RETRY_AUTOCOMMIT
|
||||||
WSREP_SLAVE_FK_CHECKS
|
WSREP_SLAVE_FK_CHECKS
|
||||||
|
@ -124,7 +124,6 @@ WSREP_PROVIDER
|
|||||||
WSREP_PROVIDER_OPTIONS
|
WSREP_PROVIDER_OPTIONS
|
||||||
WSREP_RECOVER
|
WSREP_RECOVER
|
||||||
WSREP_REJECT_QUERIES
|
WSREP_REJECT_QUERIES
|
||||||
WSREP_REPLICATE_MYISAM
|
|
||||||
WSREP_RESTART_SLAVE
|
WSREP_RESTART_SLAVE
|
||||||
WSREP_RETRY_AUTOCOMMIT
|
WSREP_RETRY_AUTOCOMMIT
|
||||||
WSREP_SLAVE_FK_CHECKS
|
WSREP_SLAVE_FK_CHECKS
|
||||||
|
@ -6051,13 +6051,6 @@ static Sys_var_mybool Sys_wsrep_recover_datadir(
|
|||||||
READ_ONLY GLOBAL_VAR(wsrep_recovery),
|
READ_ONLY GLOBAL_VAR(wsrep_recovery),
|
||||||
CMD_LINE(OPT_ARG), DEFAULT(FALSE));
|
CMD_LINE(OPT_ARG), DEFAULT(FALSE));
|
||||||
|
|
||||||
static Sys_var_mybool Sys_wsrep_replicate_myisam(
|
|
||||||
"wsrep_replicate_myisam", "To enable myisam replication",
|
|
||||||
GLOBAL_VAR(wsrep_replicate_myisam), CMD_LINE(OPT_ARG), DEFAULT(FALSE),
|
|
||||||
NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
|
|
||||||
ON_UPDATE(wsrep_replicate_myisam_update),
|
|
||||||
DEPRECATED("'@@wsrep_mode=REPLICATE_MYISAM'")); // since 10.6.0
|
|
||||||
|
|
||||||
static Sys_var_mybool Sys_wsrep_log_conflicts(
|
static Sys_var_mybool Sys_wsrep_log_conflicts(
|
||||||
"wsrep_log_conflicts", "To log multi-master conflicts",
|
"wsrep_log_conflicts", "To log multi-master conflicts",
|
||||||
GLOBAL_VAR(wsrep_log_conflicts), CMD_LINE(OPT_ARG), DEFAULT(FALSE));
|
GLOBAL_VAR(wsrep_log_conflicts), CMD_LINE(OPT_ARG), DEFAULT(FALSE));
|
||||||
|
@ -90,7 +90,6 @@ my_bool wsrep_drupal_282555_workaround; // Retry autoinc insert after du
|
|||||||
my_bool wsrep_certify_nonPK; // Certify, even when no primary key
|
my_bool wsrep_certify_nonPK; // Certify, even when no primary key
|
||||||
ulong wsrep_certification_rules = WSREP_CERTIFICATION_RULES_STRICT;
|
ulong wsrep_certification_rules = WSREP_CERTIFICATION_RULES_STRICT;
|
||||||
my_bool wsrep_recovery; // Recovery
|
my_bool wsrep_recovery; // Recovery
|
||||||
my_bool wsrep_replicate_myisam; // Enable MyISAM replication
|
|
||||||
my_bool wsrep_log_conflicts;
|
my_bool wsrep_log_conflicts;
|
||||||
my_bool wsrep_load_data_splitting= 0; // Commit load data every 10K intervals
|
my_bool wsrep_load_data_splitting= 0; // Commit load data every 10K intervals
|
||||||
my_bool wsrep_slave_UK_checks; // Slave thread does UK checks
|
my_bool wsrep_slave_UK_checks; // Slave thread does UK checks
|
||||||
|
@ -85,7 +85,6 @@ extern ulong wsrep_forced_binlog_format;
|
|||||||
extern my_bool wsrep_desync;
|
extern my_bool wsrep_desync;
|
||||||
extern ulong wsrep_reject_queries;
|
extern ulong wsrep_reject_queries;
|
||||||
extern my_bool wsrep_recovery;
|
extern my_bool wsrep_recovery;
|
||||||
extern my_bool wsrep_replicate_myisam;
|
|
||||||
extern my_bool wsrep_log_conflicts;
|
extern my_bool wsrep_log_conflicts;
|
||||||
extern ulong wsrep_mysql_replication_bundle;
|
extern ulong wsrep_mysql_replication_bundle;
|
||||||
extern my_bool wsrep_load_data_splitting;
|
extern my_bool wsrep_load_data_splitting;
|
||||||
|
@ -1100,13 +1100,3 @@ bool wsrep_gtid_domain_id_update(sys_var* self, THD *thd, enum_var_type)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wsrep_replicate_myisam_update(sys_var *self, THD* thd, enum_var_type var_type)
|
|
||||||
{
|
|
||||||
// In case user still sets wsrep_replicate_myisam we set new
|
|
||||||
// option to wsrep_mode
|
|
||||||
if (wsrep_replicate_myisam)
|
|
||||||
wsrep_mode|= WSREP_MODE_REPLICATE_MYISAM;
|
|
||||||
else
|
|
||||||
wsrep_mode&= (~WSREP_MODE_REPLICATE_MYISAM);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2013 Codership Oy <info@codership.com>
|
/* Copyright (C) 2013-2021 Codership Oy <info@codership.com>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -109,7 +109,6 @@ extern bool wsrep_gtid_seq_no_check CHECK_ARGS;
|
|||||||
extern bool wsrep_gtid_domain_id_update UPDATE_ARGS;
|
extern bool wsrep_gtid_domain_id_update UPDATE_ARGS;
|
||||||
|
|
||||||
extern bool wsrep_mode_check CHECK_ARGS;
|
extern bool wsrep_mode_check CHECK_ARGS;
|
||||||
extern bool wsrep_replicate_myisam_update UPDATE_ARGS;
|
|
||||||
#else /* WITH_WSREP */
|
#else /* WITH_WSREP */
|
||||||
|
|
||||||
#define wsrep_provider_init(X)
|
#define wsrep_provider_init(X)
|
||||||
|
Reference in New Issue
Block a user