summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-09-24 16:21:20 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2021-09-24 16:21:20 +0300
commitf59f5c4a10151b18d1407065ca48746384b6a25a (patch)
treee91c6e0da25434d21224159656fa6cae925245a0 /mysql-test
parentcfe1a258e884a4e21df9c752c2c3351da96bfb1d (diff)
downloadmariadb-git-f59f5c4a10151b18d1407065ca48746384b6a25a.tar.gz
Revert MDEV-25114
Revert 88a4be75a5f3b8d59ac8f6347ff2c197813c05dc and 9d97f92febc89941784d17d59c60275e21140ce0, which had been prematurely pushed by accident.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/suite/galera/r/galera_UK_conflict.result7
-rw-r--r--mysql-test/suite/galera/r/galera_bf_kill_debug.result163
-rw-r--r--mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result16
-rw-r--r--mysql-test/suite/galera/t/galera_UK_conflict.test4
-rw-r--r--mysql-test/suite/galera/t/galera_bf_kill_debug.cnf9
-rw-r--r--mysql-test/suite/galera/t/galera_bf_kill_debug.test283
-rw-r--r--mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test14
-rw-r--r--mysql-test/suite/wsrep/t/variables.test6
8 files changed, 28 insertions, 474 deletions
diff --git a/mysql-test/suite/galera/r/galera_UK_conflict.result b/mysql-test/suite/galera/r/galera_UK_conflict.result
index 2795a86d6a6..76649f1b268 100644
--- a/mysql-test/suite/galera/r/galera_UK_conflict.result
+++ b/mysql-test/suite/galera/r/galera_UK_conflict.result
@@ -68,9 +68,6 @@ f1 f2 f3
10 10 0
INSERT INTO t1 VALUES (7,7,7);
INSERT INTO t1 VALUES (8,8,8);
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-7
SELECT * FROM t1;
f1 f2 f3
1 1 0
@@ -81,9 +78,6 @@ f1 f2 f3
8 8 8
10 10 0
connection node_1;
-SELECT COUNT(*) FROM t1;
-COUNT(*)
-7
SELECT * FROM t1;
f1 f2 f3
1 1 0
@@ -91,6 +85,5 @@ f1 f2 f3
4 4 2
5 5 2
7 7 7
-8 8 8
10 10 0
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/r/galera_bf_kill_debug.result b/mysql-test/suite/galera/r/galera_bf_kill_debug.result
deleted file mode 100644
index c20bb80131a..00000000000
--- a/mysql-test/suite/galera/r/galera_bf_kill_debug.result
+++ /dev/null
@@ -1,163 +0,0 @@
-#
-# Case 1: We execute bf kill to wsrep_innobase_kill_one_trx
-# function just before wsrep_thd_LOCK(thd) call. Then we
-# try to kill victim transaction by KILL QUERY
-#
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-SET DEBUG_SYNC='wsrep_before_BF_victim_lock SIGNAL bf_kill WAIT_FOR bf_continue';
-ALTER TABLE t1 ADD UNIQUE KEY b1(b);;
-connection node_1;
-SET DEBUG_SYNC='now WAIT_FOR bf_kill';
-connection node_1b;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `id` int(11) NOT NULL,
- `b` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `b1` (`b`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-id b
-1 1
-2 2
-3 3
-4 4
-5 5
-connection node_1;
-SET DEBUG_SYNC= 'RESET';
-DROP TABLE t1;
-disconnect node_1a;
-disconnect node_1b;
-disconnect node_1c;
-#
-# Case 2: We execute bf kill to wsrep_innobase_kill_one_trx
-# function just after wsrep_thd_LOCK(thd) call. Then we
-# try to kill victim transaction by KILL QUERY
-#
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-SET DEBUG_SYNC='wsrep_after_BF_victim_lock SIGNAL bf_kill WAIT_FOR bf_continue';
-ALTER TABLE t1 ADD UNIQUE KEY b1(b);;
-connection node_1;
-SET DEBUG_SYNC='now WAIT_FOR bf_kill';
-connection node_1b;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `id` int(11) NOT NULL,
- `b` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `b1` (`b`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-id b
-1 1
-2 2
-3 3
-4 4
-5 5
-connection node_1;
-SET DEBUG_SYNC= 'RESET';
-DROP TABLE t1;
-disconnect node_1a;
-disconnect node_1b;
-disconnect node_1c;
-#
-# Case 3: Create victim transaction and try to send user KILL
-# from several threads
-#
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connect node_1d, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connection node_1b;
-connection node_1c;
-connection node_1d;
-connection node_1;
-disconnect node_1a;
-disconnect node_1b;
-disconnect node_1c;
-disconnect node_1d;
-DROP TABLE t1;
-#
-# Case 4: MDL-conflict, we execute ALTER until we hit gap in
-# wsrep_abort_transaction, while we are there we try to
-# manually KILL conflicting transaction (UPDATE) and
-# send conflicting transaction from other node to be executed
-# in this node by applier. As ALTER and KILL are TOI they
-# are not executed concurrently. Similarly UPDATE from other
-# node will wait for certification.
-#
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1;
-SET DEBUG_SYNC='wsrep_abort_victim_unlocked SIGNAL bf_kill_unlocked WAIT_FOR bf_continue';
-ALTER TABLE t1 ADD UNIQUE KEY b1(b);;
-connection node_1;
-SET DEBUG_SYNC='now WAIT_FOR bf_kill_unlocked';
-connection node_1b;
-connection node_2;
-update t1 set b = b + 1000 where id between 2 and 4;;
-connection node_1;
-SET DEBUG_SYNC='now SIGNAL bf_continue';
-connection node_1c;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `id` int(11) NOT NULL,
- `b` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `b1` (`b`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-SELECT * FROM t1;
-id b
-1 1
-5 5
-2 1002
-3 1003
-4 1004
-connection node_1b;
-connection node_1;
-SET DEBUG_SYNC= 'RESET';
-SELECT * FROM t1;
-id b
-1 1
-5 5
-2 1002
-3 1003
-4 1004
-connection node_2;
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `id` int(11) NOT NULL,
- `b` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `b1` (`b`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-SELECT * FROM t1;
-id b
-1 1
-5 5
-2 1002
-3 1003
-4 1004
-DROP TABLE t1;
-disconnect node_1a;
-disconnect node_1c;
diff --git a/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result b/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result
index a972394f87c..94752ed7c76 100644
--- a/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result
+++ b/mysql-test/suite/galera/r/galera_toi_ddl_fk_insert.result
@@ -21,6 +21,22 @@ connection node_1a;
connection node_1b;
connection node_2;
connection node_2a;
+connection node_1;
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+COUNT(*)
+20001
+SELECT COUNT(*) FROM child;
+COUNT(*)
+10000
+connection node_2;
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+COUNT(*)
+20001
+SELECT COUNT(*) FROM child;
+COUNT(*)
+10000
DROP TABLE child;
DROP TABLE parent;
DROP TABLE ten;
diff --git a/mysql-test/suite/galera/t/galera_UK_conflict.test b/mysql-test/suite/galera/t/galera_UK_conflict.test
index 83d0e47dc3d..57bafbf8ae0 100644
--- a/mysql-test/suite/galera/t/galera_UK_conflict.test
+++ b/mysql-test/suite/galera/t/galera_UK_conflict.test
@@ -140,13 +140,9 @@ SELECT * FROM t1;
# original state in node 1
INSERT INTO t1 VALUES (7,7,7);
INSERT INTO t1 VALUES (8,8,8);
-SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
--connection node_1
---let $wait_condition = SELECT COUNT(*) = 7 FROM t1
---source include/wait_condition.inc
-SELECT COUNT(*) FROM t1;
SELECT * FROM t1;
DROP TABLE t1;
diff --git a/mysql-test/suite/galera/t/galera_bf_kill_debug.cnf b/mysql-test/suite/galera/t/galera_bf_kill_debug.cnf
deleted file mode 100644
index 77bb6af9f35..00000000000
--- a/mysql-test/suite/galera/t/galera_bf_kill_debug.cnf
+++ /dev/null
@@ -1,9 +0,0 @@
-!include ../galera_2nodes.cnf
-
-[mysqld.1]
-wsrep_log_conflicts=ON
-wsrep_debug=1
-
-[mysqld.2]
-wsrep_log_conflicts=ON
-wsrep_debug=1
diff --git a/mysql-test/suite/galera/t/galera_bf_kill_debug.test b/mysql-test/suite/galera/t/galera_bf_kill_debug.test
deleted file mode 100644
index f83d4a28ce9..00000000000
--- a/mysql-test/suite/galera/t/galera_bf_kill_debug.test
+++ /dev/null
@@ -1,283 +0,0 @@
---source include/galera_cluster.inc
---source include/have_debug.inc
---source include/have_debug_sync.inc
-
---echo #
---echo # Case 1: We execute bf kill to wsrep_innobase_kill_one_trx
---echo # function just before wsrep_thd_LOCK(thd) call. Then we
---echo # try to kill victim transaction by KILL QUERY
---echo #
-
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-
-#
-# This will be victim transaction for both bf kill and
-# user KILL
-#
---connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-
-#
-# Take thread id for above query
-#
---connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1
---let $k_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'root' AND COMMAND = 'Sleep' LIMIT 1`
-
-#
-# Set DEBUG_SYNC and send conflicting DDL that will be TOI (bf) and
-# cause bf_kill
-#
---connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1
-SET DEBUG_SYNC='wsrep_before_BF_victim_lock SIGNAL bf_kill WAIT_FOR bf_continue';
---send ALTER TABLE t1 ADD UNIQUE KEY b1(b);
-
-#
-# Wait until we have reached the sync point
-#
---connection node_1
-SET DEBUG_SYNC='now WAIT_FOR bf_kill';
-
-#
-# Try to kill update query
-#
---connection node_1b
---disable_query_log
---send_eval KILL QUERY $k_thread;
-
-
-#
-# Let bf_kill continue
-#
---connection node_1
-SET DEBUG_SYNC='now SIGNAL bf_continue';
---connection node_1c
---reap
-SHOW CREATE TABLE t1;
-SELECT * FROM t1;
-
---connection node_1b
---reap
---enable_query_log
-
---connection node_1
-SET DEBUG_SYNC= 'RESET';
-DROP TABLE t1;
-
---disconnect node_1a
---disconnect node_1b
---disconnect node_1c
-
---echo #
---echo # Case 2: We execute bf kill to wsrep_innobase_kill_one_trx
---echo # function just after wsrep_thd_LOCK(thd) call. Then we
---echo # try to kill victim transaction by KILL QUERY
---echo #
-
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-
-#
-# This will be victim transaction for both bf kill and
-# user KILL
-#
---connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-
-#
-# Take thread id for above query
-#
---connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1
---let $k_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'root' AND COMMAND = 'Sleep' LIMIT 1`
-
-#
-# Set DEBUG_SYNC and send conflicting DDL that will be TOI (bf) and
-# cause bf_kill
-#
---connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1
-SET DEBUG_SYNC='wsrep_after_BF_victim_lock SIGNAL bf_kill WAIT_FOR bf_continue';
---send ALTER TABLE t1 ADD UNIQUE KEY b1(b);
-
-#
-# Wait until we have reached the sync point
-#
---connection node_1
-SET DEBUG_SYNC='now WAIT_FOR bf_kill';
-
-#
-# Try to kill update query
-#
---connection node_1b
---disable_query_log
---send_eval KILL QUERY $k_thread;
-
-#
-# Let bf_kill continue
-#
---connection node_1
-SET DEBUG_SYNC='now SIGNAL bf_continue';
---connection node_1c
---reap
-SHOW CREATE TABLE t1;
-SELECT * FROM t1;
-
---connection node_1b
---reap
---enable_query_log
-
---connection node_1
-SET DEBUG_SYNC= 'RESET';
-DROP TABLE t1;
-
---disconnect node_1a
---disconnect node_1b
---disconnect node_1c
-
---echo #
---echo # Case 3: Create victim transaction and try to send user KILL
---echo # from several threads
---echo #
-
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-
-#
-# This will be victim transaction for user KILL
-#
---connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-
-#
-# Take thread id for above query
-#
---connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1
---connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1
---connect node_1d, 127.0.0.1, root, , test, $NODE_MYPORT_1
-
---connection node_1b
---let $k_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'root' AND COMMAND = 'Sleep' LIMIT 1`
-
-#
-# Try to kill update query from several connections concurrently
-#
---disable_query_log
---send_eval KILL QUERY $k_thread;
-
---connection node_1c
---disable_query_log
---send_eval KILL QUERY $k_thread;
-
---connection node_1d
---disable_query_log
---send_eval KILL QUERY $k_thread;
-
-#
-# We do not know execution order so any of these could fail as KILL
-# has been already done
-#
---connection node_1b
---enable_query_log
---error 0,ER_KILL_DENIED_ERROR
---reap
---connection node_1c
---enable_query_log
---error 0,ER_KILL_DENIED_ERROR
---reap
---connection node_1d
---enable_query_log
---error 0,ER_KILL_DENIED_ERROR
---reap
-
---connection node_1
---disconnect node_1a
---disconnect node_1b
---disconnect node_1c
---disconnect node_1d
-DROP TABLE t1;
-
---echo #
---echo # Case 4: MDL-conflict, we execute ALTER until we hit gap in
---echo # wsrep_abort_transaction, while we are there we try to
---echo # manually KILL conflicting transaction (UPDATE) and
---echo # send conflicting transaction from other node to be executed
---echo # in this node by applier. As ALTER and KILL are TOI they
---echo # are not executed concurrently. Similarly UPDATE from other
---echo # node will wait for certification.
---echo #
-
-CREATE TABLE t1(id int not null primary key, b int) engine=innodb;
-INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5);
-
-#
-# This will be victim transaction for both bf kill and
-# user KILL, and should not have any effect on result
-#
---connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1
-begin;
-update t1 set b = b * 10 where id between 2 and 4;
-
-#
-# Take thread id for above query
-#
---connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1
---let $k_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'root' AND COMMAND = 'Sleep' LIMIT 1`
-
-#
-# Set DEBUG_SYNC and send conflicting DDL that will be TOI (bf) and
-# cause bf_kill but let's execute it only to gap in wsrep_abort_transaction
-#
---connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1
-SET DEBUG_SYNC='wsrep_abort_victim_unlocked SIGNAL bf_kill_unlocked WAIT_FOR bf_continue';
---send ALTER TABLE t1 ADD UNIQUE KEY b1(b);
-
-#
-# Wait until we have reached the sync point
-#
---connection node_1
-SET DEBUG_SYNC='now WAIT_FOR bf_kill_unlocked';
-
-#
-# Try to kill update query
-#
---connection node_1b
---disable_query_log
---send_eval KILL QUERY $k_thread;
-
-#
-# Send conflicting update from other node, this should be applied on both nodes
-# but should not kill ALTER
-#
---enable_query_log
---connection node_2
---send update t1 set b = b + 1000 where id between 2 and 4;
-
-#
-# Let bf_kill continue
-#
---connection node_1
-SET DEBUG_SYNC='now SIGNAL bf_continue';
---connection node_1c
---reap
-SHOW CREATE TABLE t1;
-SELECT * FROM t1;
-
---connection node_1b
---reap
---enable_query_log
-
---connection node_1
-SET DEBUG_SYNC= 'RESET';
-SELECT * FROM t1;
-
---connection node_2
---reap
-SHOW CREATE TABLE t1;
-SELECT * FROM t1;
-DROP TABLE t1;
-
---disconnect node_1a
---disconnect node_1c
-
diff --git a/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test b/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test
index 3b4b427f551..fadc94d78ff 100644
--- a/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test
+++ b/mysql-test/suite/galera/t/galera_toi_ddl_fk_insert.test
@@ -54,11 +54,15 @@ INSERT INTO parent VALUES (1, 0);
--connection node_2a
--reap
-#
-# ALTER TABLE could bf kill one or more of INSERTs to parent, so
-# the actual number of rows in PARENT depends on whether
-# the INSERT is committed before ALTER TABLE is executed
-#
+--connection node_1
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+SELECT COUNT(*) FROM child;
+
+--connection node_2
+SET SESSION wsrep_sync_wait=15;
+SELECT COUNT(*) FROM parent;
+SELECT COUNT(*) FROM child;
DROP TABLE child;
DROP TABLE parent;
diff --git a/mysql-test/suite/wsrep/t/variables.test b/mysql-test/suite/wsrep/t/variables.test
index 875315c0e7c..0cf13650ce0 100644
--- a/mysql-test/suite/wsrep/t/variables.test
+++ b/mysql-test/suite/wsrep/t/variables.test
@@ -66,7 +66,7 @@ call mtr.add_suppression("WSREP: Failed to get provider options");
#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
---replace_regex /.*libgalera.*/libgalera_smm.so/
+--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_slave_threads;
SELECT @@global.wsrep_cluster_address;
@@ -77,7 +77,7 @@ SHOW STATUS LIKE 'wsrep_thread_count';
#evalp SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
---replace_regex /.*libgalera.*/libgalera_smm.so/
+--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_cluster_address;
SELECT @@global.wsrep_on;
@@ -101,7 +101,7 @@ SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VA
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
SELECT VARIABLE_VALUE AS EXPECT_2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
---replace_regex /.*libgalera.*/libgalera_smm.so/
+--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
SELECT @@global.wsrep_provider;
SELECT @@global.wsrep_cluster_address;
SELECT @@global.wsrep_on;