From 0174a9ff3d412ada22205edc19066a14c52d6e99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Wed, 26 Oct 2022 08:08:06 +0300 Subject: [PATCH 1/4] MDEV-30172: Galera test case cleanup * Delete tests that are not supported and not going to be supported any time soon * Fix result set on tests that are not run on bb * Fix tests that fail because of auto increment offset * Make sure that disabled tests have open bug report --- mysql-test/suite/galera/disabled.def | 23 +- .../r/galera_gcache_recover_manytrx.result | 3 + mysql-test/suite/galera/r/partition.result | 8 +- mysql-test/suite/galera/r/query_cache.result | 1758 ----------------- .../t/galera_gcache_recover_manytrx.test | 3 + mysql-test/suite/galera/t/query_cache.cnf | 9 - mysql-test/suite/galera/t/query_cache.test | 1112 ----------- mysql-test/suite/galera_3nodes/disabled.def | 19 +- .../r/galera_safe_to_bootstrap.result | 2 +- .../r/galera_slave_options_do.result | 28 - .../r/galera_slave_options_ignore.result | 28 - .../r/galera_wsrep_schema_init.result | 4 +- .../t/galera_slave_options_do.cnf | 7 - .../t/galera_slave_options_do.test | 34 - .../t/galera_slave_options_ignore.cnf | 7 - .../t/galera_slave_options_ignore.test | 35 - .../suite/galera_3nodes_sr/disabled.def | 18 +- .../suite/galera_3nodes_sr/r/GCF-582.result | 20 +- .../suite/galera_3nodes_sr/r/GCF-606.result | 4 + .../suite/galera_3nodes_sr/r/GCF-810A.result | 256 --- .../suite/galera_3nodes_sr/r/GCF-810B.result | 100 - .../suite/galera_3nodes_sr/r/GCF-810C.result | 177 -- .../galera_3nodes_sr/r/MDEV-26707.result | 3 + .../r/galera_sr_isolate_master.result | 6 +- ...sr_kill_slave_after_apply_rollback2.result | 44 +- .../suite/galera_3nodes_sr/t/GCF-582.test | 13 + .../suite/galera_3nodes_sr/t/GCF-606.test | 8 + .../suite/galera_3nodes_sr/t/GCF-810A.test | 137 -- .../suite/galera_3nodes_sr/t/GCF-810B.test | 49 - .../suite/galera_3nodes_sr/t/GCF-810C.test | 70 - .../suite/galera_3nodes_sr/t/MDEV-26707.test | 7 + .../t/galera_sr_isolate_master.test | 10 +- ...a_sr_kill_slave_after_apply_rollback2.test | 26 +- .../t/galera_sr_kill_slave_before_apply.test | 1 - mysql-test/suite/galera_sr/disabled.def | 3 +- 35 files changed, 151 insertions(+), 3881 deletions(-) delete mode 100644 mysql-test/suite/galera/r/query_cache.result delete mode 100644 mysql-test/suite/galera/t/query_cache.cnf delete mode 100644 mysql-test/suite/galera/t/query_cache.test delete mode 100644 mysql-test/suite/galera_3nodes/r/galera_slave_options_do.result delete mode 100644 mysql-test/suite/galera_3nodes/r/galera_slave_options_ignore.result delete mode 100644 mysql-test/suite/galera_3nodes/t/galera_slave_options_do.cnf delete mode 100644 mysql-test/suite/galera_3nodes/t/galera_slave_options_do.test delete mode 100644 mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.cnf delete mode 100644 mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test delete mode 100644 mysql-test/suite/galera_3nodes_sr/r/GCF-810A.result delete mode 100644 mysql-test/suite/galera_3nodes_sr/r/GCF-810B.result delete mode 100644 mysql-test/suite/galera_3nodes_sr/r/GCF-810C.result delete mode 100644 mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test delete mode 100644 mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test delete mode 100644 mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test diff --git a/mysql-test/suite/galera/disabled.def b/mysql-test/suite/galera/disabled.def index d9f4924756e..bff8e472539 100644 --- a/mysql-test/suite/galera/disabled.def +++ b/mysql-test/suite/galera/disabled.def @@ -10,24 +10,11 @@ # ############################################################################## -GCF-939 : MDEV-21520 galera.GCF-939 -MW-329 : MDEV-19962 Galera test failure on MW-329 galera_as_slave_ctas : MDEV-28378 timeout -galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event() -galera_bf_abort_group_commit : MDEV-18282 Galera test failure on galera.galera_bf_abort_group_commit -galera_bf_lock_wait : MDEV-21597 wsrep::transaction::start_transaction(): Assertion `active() == false' failed -galera_encrypt_tmp_files : Get error failed to enable encryption of temporary files -galera_gcache_recover_manytrx : MDEV-18834 Galera test failure -galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails galera_pc_recovery : MDEV-25199 cluster fails to start up -galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim -galera_var_ignore_apply_errors : MDEV-26770 galera_var_ignore_apply_errors fails Server did not transition to READY state +galera_sst_encrypted : MDEV-29876 Galera test failure on galera_sst_encrypted +galera.MW-284 : MDEV-29861 Galera test case hangs +galera.galera_binlog_checksum : MDEV-29861 Galera test case hangs +galera_var_notify_ssl_ipv6 : MDEV-29861 Galera test case hangs galera_var_node_address : MDEV-20485 Galera test failure -galera_var_retry_autocommit: MDEV-18181 Galera test failure on galera.galera_var_retry_autocommit -partition : MDEV-19958 Galera test failure on galera.partition -query_cache : MDEV-15805 Test failure on galera.query_cache -versioning_trx_id : MDEV-18590: galera.versioning_trx_id: Test failure: mysqltest: Result content mismatch -galera_bf_abort_at_after_statement : Unstable -galera.MW-284 : MDEV-29861: Galera test case hangs -galera.galera_binlog_checksum : MDEV-29861: Galera test case hangs -galera_var_notify_ssl_ipv6 : MDEV-29861: Galera test case hangs +MDEV-26575 : MDEV-29878 Galera test failure on MDEV-26575 diff --git a/mysql-test/suite/galera/r/galera_gcache_recover_manytrx.result b/mysql-test/suite/galera/r/galera_gcache_recover_manytrx.result index a0a45446eff..9e486e2cdfd 100644 --- a/mysql-test/suite/galera/r/galera_gcache_recover_manytrx.result +++ b/mysql-test/suite/galera/r/galera_gcache_recover_manytrx.result @@ -94,6 +94,7 @@ CALL insert_1m ();; connection node_1_insert_10m; CALL insert_10m ();; connection node_2; +call mtr.add_suppression("Error in Log_event::read_log_event():.*"); SET SESSION wsrep_sync_wait = 0; Killing server ... connection node_1; @@ -130,9 +131,11 @@ DROP PROCEDURE update_simple; DROP PROCEDURE insert_1k; DROP PROCEDURE insert_1m; connection node_1; +call mtr.add_suppression("Error in Log_event::read_log_event():.*"); CALL mtr.add_suppression("conflict state 7 after post commit"); CALL mtr.add_suppression("Skipped GCache ring buffer recovery"); include/assert_grep.inc [async IST sender starting to serve] connection node_2; +call mtr.add_suppression("Error in Log_event::read_log_event():.*"); CALL mtr.add_suppression("Skipped GCache ring buffer recovery"); include/assert_grep.inc [Recovering GCache ring buffer: found gapless sequence] diff --git a/mysql-test/suite/galera/r/partition.result b/mysql-test/suite/galera/r/partition.result index 2e16d06519c..9d649fcec69 100644 --- a/mysql-test/suite/galera/r/partition.result +++ b/mysql-test/suite/galera/r/partition.result @@ -57,7 +57,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PARTITION BY RANGE (`i`) (PARTITION `p1` VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION `p2` VALUES LESS THAN (20) ENGINE = InnoDB, @@ -67,7 +67,7 @@ Table Create Table p1 CREATE TABLE `p1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) -) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci SELECT * FROM test.t1; i 19 @@ -94,7 +94,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PARTITION BY RANGE (`i`) (PARTITION `p1` VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION `pMax` VALUES LESS THAN MAXVALUE ENGINE = InnoDB) @@ -106,7 +106,7 @@ Table Create Table t1 CREATE TABLE `t1` ( `i` int(10) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`i`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PARTITION BY RANGE (`i`) (PARTITION `p1` VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION `pMax` VALUES LESS THAN MAXVALUE ENGINE = InnoDB) diff --git a/mysql-test/suite/galera/r/query_cache.result b/mysql-test/suite/galera/r/query_cache.result deleted file mode 100644 index 5dabd38a982..00000000000 --- a/mysql-test/suite/galera/r/query_cache.result +++ /dev/null @@ -1,1758 +0,0 @@ -connection node_2; -connection node_1; - -# Execute FLUSH/RESET commands. -# On node-1 -connection node_1; -SET @query_cache_size_saved=@@GLOBAL.query_cache_size; -SET @query_cache_type_saved=@@GLOBAL.query_cache_type; -set GLOBAL query_cache_size=1355776; -flush query cache; -reset query cache; -flush status; -# On node-2 -connection node_2; -SET @query_cache_size_saved=@@GLOBAL.query_cache_size; -SET @query_cache_type_saved=@@GLOBAL.query_cache_type; -set GLOBAL query_cache_size=1355776; -flush query cache; -reset query cache; -flush status; -# On node-1 -connection node_1; -create table t1 (a int not null) engine=innodb; -insert into t1 values (1),(2),(3); -select * from t1; -a -1 -2 -3 -select * from t1; -a -1 -2 -3 -select sql_no_cache * from t1; -a -1 -2 -3 -select length(now()) from t1; -length(now()) -19 -19 -19 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-2 -connection node_2; -select * from t1; -a -1 -2 -3 -select * from t1; -a -1 -2 -3 -select sql_no_cache * from t1; -a -1 -2 -3 -select length(now()) from t1; -length(now()) -19 -19 -19 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-1 -connection node_1; -delete from t1 where a=1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-2 -connection node_2; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-1 -connection node_1; -select * from t1; -a -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-2 -connection node_2; -select * from t1; -a -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-1 -connection node_1; -update t1 set a=1 where a=3; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-2 -connection node_2; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-1 -connection node_1; -select * from t1; -a -2 -1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-2 -connection node_2; -select * from t1; -a -2 -1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-1 -connection node_1; -drop table t1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 -# On node-2 -connection node_2; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 1 - -# On node-1 -connection node_1; -create table t1 (a int not null) ENGINE=MyISAM; -insert into t1 values (1),(2),(3); -create table t2 (a int not null) ENGINE=MyISAM; -insert into t2 values (4),(5),(6); -create table t3 (a int not null) engine=MERGE UNION=(t1,t2) INSERT_METHOD=FIRST; -select * from t3; -a -1 -2 -3 -4 -5 -6 -select * from t3; -a -1 -2 -3 -4 -5 -6 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 2 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 2 -insert into t2 values (7); -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 2 -select * from t1; -a -1 -2 -3 -select * from t1; -a -1 -2 -3 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -insert into t3 values (8); -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -select * from t3; -a -1 -2 -3 -8 -4 -5 -6 -7 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -update t2 set a=9 where a=7; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -select * from t1; -a -1 -2 -3 -8 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -update t3 set a=10 where a=1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -select * from t3; -a -10 -2 -3 -8 -4 -5 -6 -9 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -delete from t2 where a=9; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -select * from t1; -a -10 -2 -3 -8 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -delete from t3 where a=10; -select * from t3; -a -2 -3 -8 -4 -5 -6 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -# On node-2 -connection node_2; -select * from t3; -a -select * from t3; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 2 -drop table t1, t2, t3; -# On node-1 -connection node_1; -set query_cache_type=demand; -create table t1 (a int not null) engine=innodb; -insert into t1 values (1),(2),(3); -select * from t1; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -select sql_cache * from t1 union select * from t1; -a -1 -2 -3 -set query_cache_type=2; -select sql_cache * from t1 union select * from t1; -a -1 -2 -3 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 4 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -set query_cache_type=on; -# On node-2 -connection node_2; -set query_cache_type=demand; -select * from t1; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 2 -select sql_cache * from t1 union select * from t1; -a -1 -2 -3 -set query_cache_type=2; -select sql_cache * from t1 union select * from t1; -a -1 -2 -3 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -set query_cache_type=on; -# On node-1 -connection node_1; -select sql_no_cache * from t1; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 4 -# On node-2 -connection node_2; -select sql_no_cache * from t1; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -drop table t1; -# On node-1 -connection node_1; -create table t1 (a text not null) engine=innodb; -select CONNECTION_ID() from t1; -CONNECTION_ID() -select FOUND_ROWS(); -FOUND_ROWS() -0 -select NOW() from t1; -NOW() -select CURDATE() from t1; -CURDATE() -select CURTIME() from t1; -CURTIME() -select DATABASE() from t1; -DATABASE() -select ENCRYPT("test") from t1; -ENCRYPT("test") -select LAST_INSERT_ID() from t1; -LAST_INSERT_ID() -select RAND() from t1; -RAND() -select UNIX_TIMESTAMP() from t1; -UNIX_TIMESTAMP() -select USER() from t1; -USER() -select CURRENT_USER() from t1; -CURRENT_USER() -select benchmark(1,1) from t1; -benchmark(1,1) -explain extended select benchmark(1,1) from t1; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00 -Warnings: -Note 1003 select benchmark(1,1) AS `benchmark(1,1)` from `test`.`t1` -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 4 -# On node-2 -connection node_2; -select CONNECTION_ID() from t1; -CONNECTION_ID() -select FOUND_ROWS(); -FOUND_ROWS() -0 -select NOW() from t1; -NOW() -select CURDATE() from t1; -CURDATE() -select CURTIME() from t1; -CURTIME() -select DATABASE() from t1; -DATABASE() -select ENCRYPT("test") from t1; -ENCRYPT("test") -select LAST_INSERT_ID() from t1; -LAST_INSERT_ID() -select RAND() from t1; -RAND() -select UNIX_TIMESTAMP() from t1; -UNIX_TIMESTAMP() -select USER() from t1; -USER() -select CURRENT_USER() from t1; -CURRENT_USER() -select benchmark(1,1) from t1; -benchmark(1,1) -explain extended select benchmark(1,1) from t1; -id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00 -Warnings: -Note 1003 select benchmark(1,1) AS `benchmark(1,1)` from `test`.`t1` -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -drop table t1; -# On node-1 -connection node_1; -create database mysqltest; -create table mysqltest.t1 (i int not null auto_increment, a int, primary key -(i)) engine=innodb; -insert into mysqltest.t1 values (1, 1); -select * from mysqltest.t1 where i is null; -i a -create table t1(a int) engine=innodb; -select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 4 -select * from mysqltest.t1; -i a -1 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 3 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 4 -# On node-2 -connection node_2; -select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -select * from mysqltest.t1; -i a -1 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -drop database mysqltest; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -drop table t1; -# On node-1 -connection node_1; -create table t1 (a char(1) not null collate koi8r_general_ci) engine=innodb; -insert into t1 values(_koi8r 0xc3); -set CHARACTER SET koi8r; -select * from t1; -a -à -set CHARACTER SET cp1251_koi8; -select * from t1; -a -ö -set CHARACTER SET DEFAULT; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 4 -# On node-2 -connection node_2; -set CHARACTER SET koi8r; -select * from t1; -a -à -set CHARACTER SET cp1251_koi8; -select * from t1; -a -ö -set CHARACTER SET DEFAULT; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 3 -drop table t1; -# On node-1 -connection node_1; -create database if not exists mysqltest; -create table mysqltest.t1 (i int not null) engine=innodb; -create table t1 (i int not null) engine=innodb; -insert into mysqltest.t1 (i) values (1); -insert into t1 (i) values (2); -select * from t1; -i -2 -use mysqltest; -select * from t1; -i -1 -select * from t1; -i -1 -use test; -select * from t1; -i -2 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 6 -# On node-2 -connection node_2; -select * from t1; -i -2 -use mysqltest; -select * from t1; -i -1 -select * from t1; -i -1 -use test; -select * from t1; -i -2 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 5 -drop database mysqltest; -drop table t1; -# On node-1 -connection node_1; -create table t1 (i int not null) engine=innodb; -insert into t1 (i) values (1),(2),(3),(4); -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -i -1 -2 -select FOUND_ROWS(); -FOUND_ROWS() -4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 6 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -select * from t1 where i=1; -i -1 -select FOUND_ROWS(); -FOUND_ROWS() -1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 6 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -i -1 -2 -select FOUND_ROWS(); -FOUND_ROWS() -4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 7 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -select * from t1 where i=1; -i -1 -select FOUND_ROWS(); -FOUND_ROWS() -1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 8 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -# On node-2 -connection node_2; -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -i -1 -2 -select FOUND_ROWS(); -FOUND_ROWS() -4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 5 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -select * from t1 where i=1; -i -1 -select FOUND_ROWS(); -FOUND_ROWS() -1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 5 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -i -1 -2 -select FOUND_ROWS(); -FOUND_ROWS() -4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 6 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -select * from t1 where i=1; -i -1 -select FOUND_ROWS(); -FOUND_ROWS() -1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 7 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -drop table t1; -# On node-2 -connection node_2; -flush query cache; -reset query cache; -# On node-1 -connection node_1; -flush query cache; -reset query cache; -create table t1 (a int not null) ENGINE=MYISAM; -insert into t1 values (1),(2),(3); -select * from t1; -a -1 -2 -3 -select * from t1; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 9 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 21 -insert delayed into t1 values (4); -select a from t1; -a -1 -2 -3 -4 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 9 -# On node-2 -connection node_2; -select * from t1; -a -select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 8 -insert delayed into t1 values (4); -select a from t1; -a -4 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 8 -drop table t1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 8 -# On node-1 -connection node_1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 9 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 22 -# On node-2 -connection node_2; -show global variables like "query_cache_min_res_unit"; -Variable_name Value -query_cache_min_res_unit 4096 -set GLOBAL query_cache_min_res_unit=1001; -Warnings: -Warning 1292 Truncated incorrect query_cache_min_res_unit value: '1001' -show global variables like "query_cache_min_res_unit"; -Variable_name Value -query_cache_min_res_unit 1000 -# On node-1 -connection node_1; -show global variables like "query_cache_min_res_unit"; -Variable_name Value -query_cache_min_res_unit 4096 -set GLOBAL query_cache_min_res_unit=1001; -Warnings: -Warning 1292 Truncated incorrect query_cache_min_res_unit value: '1001' -show global variables like "query_cache_min_res_unit"; -Variable_name Value -query_cache_min_res_unit 1000 -create table t1 (a int not null) engine=innodb; -insert into t1 values (1),(2),(3); -create table t2 (a int not null) engine=innodb; -insert into t2 values (1),(2),(3); -select * from t1; -a -1 -2 -3 -select * from t1; -a -1 -2 -3 -select * from t2; -a -1 -2 -3 -select * from t2; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 24 -# On node-2 -connection node_2; -select * from t1; -a -1 -2 -3 -select * from t1; -a -1 -2 -3 -select * from t2; -a -1 -2 -3 -select * from t2; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 10 -drop table t1; -select a from t2; -a -1 -2 -3 -select a from t2; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 18 -set GLOBAL query_cache_min_res_unit=default; -show global variables like "query_cache_min_res_unit"; -Variable_name Value -query_cache_min_res_unit 4096 -# On node-1 -connection node_1; -select a from t2; -a -1 -2 -3 -select a from t2; -a -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 25 -drop table t2; -set GLOBAL query_cache_min_res_unit=default; -show global variables like "query_cache_min_res_unit"; -Variable_name Value -query_cache_min_res_unit 4096 -# On node-1 -connection node_1; -create table t1 (a int not null) engine=innodb; -insert into t1 values (1); -select "aaa" from t1; -aaa -aaa -select "AAA" from t1; -AAA -AAA -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 27 -# On node-2 -connection node_2; -select "aaa" from t1; -aaa -aaa -select "AAA" from t1; -AAA -AAA -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 20 -drop table t1; -# On node-1 -connection node_1; -create table t1 (a int) engine=innodb; -set GLOBAL query_cache_size=1000; -Warnings: -Warning 1292 Truncated incorrect query_cache_size value: '1000' -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=1024; -Warnings: -Warning 1282 Query cache failed to set size 1024; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=10240; -Warnings: -Warning 1282 Query cache failed to set size 10240; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=20480; -Warnings: -Warning 1282 Query cache failed to set size 20480; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=40960; -Warnings: -Warning 1282 Query cache failed to set size 40960; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=51200; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 51200 -select * from t1; -a -set GLOBAL query_cache_size=61440; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 61440 -select * from t1; -a -set GLOBAL query_cache_size=81920; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 81920 -select * from t1; -a -set GLOBAL query_cache_size=102400; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 102400 -select * from t1; -a -# On node-2 -connection node_2; -set GLOBAL query_cache_size=1000; -Warnings: -Warning 1292 Truncated incorrect query_cache_size value: '1000' -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=1024; -Warnings: -Warning 1282 Query cache failed to set size 1024; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=10240; -Warnings: -Warning 1282 Query cache failed to set size 10240; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=20480; -Warnings: -Warning 1282 Query cache failed to set size 20480; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=40960; -Warnings: -Warning 1282 Query cache failed to set size 40960; new query cache size is 0 -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 0 -select * from t1; -a -set GLOBAL query_cache_size=51200; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 51200 -select * from t1; -a -set GLOBAL query_cache_size=61440; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 61440 -select * from t1; -a -set GLOBAL query_cache_size=81920; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 81920 -select * from t1; -a -set GLOBAL query_cache_size=102400; -show global variables like "query_cache_size"; -Variable_name Value -query_cache_size 102400 -select * from t1; -a -drop table t1; -# On node-1 -connection node_1; -set GLOBAL query_cache_size=1048576; -create table t1 (i int not null) engine=innodb; -create table t2 (i int not null) engine=innodb; -select * from t1; -i -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -create temporary table t3 (i int not null); -select * from t2; -i -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -select * from t3; -i -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -update t1 set i=(select distinct 1 from (select * from t2) a); -drop table t3; -# On node-2 -connection node_2; -set GLOBAL query_cache_size=1048576; -select * from t1; -i -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -select * from t2; -i -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -drop table t1, t2; -# On node-1 -connection node_1; -use mysql; -select * from db; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -use test; -select * from mysql.db; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -# On node-1 -connection node_1; -create table t1(id int auto_increment primary key) engine=innodb; -insert into t1 values (1), (2), (3); -select * from t1; -id -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -# On node-2 -connection node_2; -select * from t1; -id -1 -2 -3 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -# On node-1 -connection node_1; -alter table t1 rename to t2; -select * from t1; -ERROR 42S02: Table 'test.t1' doesn't exist -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -# On node-2 -connection node_2; -select * from t1; -ERROR 42S02: Table 'test.t1' doesn't exist -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -drop table t2; -# On node-1 -connection node_1; -create table t1 (word char(20) not null) engine=innodb; -select * from t1; -word -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -load data infile 'MYSQLTEST_VARDIR/std_data/words.dat' into table t1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -# On node-2 -connection node_2; -select count(*) from t1; -count(*) -70 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -load data infile 'MYSQLTEST_VARDIR/std_data/words.dat' into table t1; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -select count(*) from t1; -count(*) -140 -drop table t1; -# -# INTO OUTFILE/DUMPFILE test -# -# On node-1 -connection node_1; -create table t1 (a int) engine=innodb; -insert into t1 values (1),(2),(3); -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -select * from t1 into outfile "query_cache.out.file"; -Warnings: -Warning 1287 ' INTO FROM...' instead -select * from t1 into outfile "query_cache.out.file"; -ERROR HY000: File 'query_cache.out.file' already exists -select * from t1 limit 1 into dumpfile "query_cache.dump.file"; -Warnings: -Warning 1287 ' INTO FROM...' instead -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 36 -drop table t1; -# -# Test of SQL_SELECT_LIMIT -# -# On node-1 -connection node_1; -create table t1 (a int) engine=innodb; -insert into t1 values (1),(2); -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -select * from t1; -a -1 -2 -SET SQL_SELECT_LIMIT=1; -select * from t1; -a -1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 38 -SET SQL_SELECT_LIMIT=DEFAULT; -# On node-2 -connection node_2; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -select * from t1; -a -1 -2 -SET SQL_SELECT_LIMIT=1; -select * from t1; -a -1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -SET SQL_SELECT_LIMIT=DEFAULT; -drop table t1; -# -# WRITE LOCK & QC -# -# On node-1 -connection node_1; -create table t1 (a int not null) engine=innodb; -create table t2 (a int not null) engine=innodb; -set query_cache_wlock_invalidate=1; -create view v1 as select * from t1; -select * from t1; -a -select * from t2; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 40 -lock table t1 write, t2 read; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -unlock table; -select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -lock table v1 write; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 41 -unlock table; -drop view v1; -set query_cache_wlock_invalidate=default; -# On node-2 -connection node_2; -set query_cache_wlock_invalidate=1; -create view v1 as select * from t1; -select * from t1; -a -select * from t2; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -lock table t1 write, t2 read; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -unlock table; -select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -lock table v1 write; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 35 -unlock table; -drop view v1; -set query_cache_wlock_invalidate=default; -drop table t1,t2; -# -# Hiding real table stored in query cache by temporary table -# -# On node-1 -connection node_1; -create table t1 (id int primary key) engine=innodb; -insert into t1 values (1),(2),(3); -select * from t1; -id -1 -2 -3 -create temporary table t1 (a int not null auto_increment primary key); -select * from t1; -a -drop table t1; -drop table t1; -# On node-1 -connection node_1; -SET NAMES koi8r; -CREATE TABLE t1 (a char(1) character set koi8r) engine=innodb; -INSERT INTO t1 VALUES (_koi8r 0xc3),(_koi8r 0xc3); -SELECT a,'Â','â'='Â' FROM t1; -a  'â'='Â' -à  0 -à  0 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 43 -set collation_connection=koi8r_bin; -SELECT a,'Â','â'='Â' FROM t1; -a  'â'='Â' -à  0 -à  0 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 44 -set character_set_client=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -a ç? 'ç?'='ç?' -à ç? 1 -à ç? 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 3 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 45 -set character_set_results=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -a Ã? 'â'='Â' -ö Ã? 1 -ö Ã? 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 46 -SET NAMES default; -# On node-2 -connection node_2; -# -# Run select -# -SELECT a,'Â','â'='Â' FROM t1; -a  'â'='Â' -?  0 -?  0 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -set collation_connection=koi8r_bin; -SELECT a,'Â','â'='Â' FROM t1; -a ?? 'â'='Â' -? ?? 1 -? ?? 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 2 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 37 -set character_set_client=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -a ?? '??'='?‚' -? ?? 1 -? ?? 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 3 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 38 -set character_set_results=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -a Ã? 'â'='Â' -ö Ã? 1 -ö Ã? 1 -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 4 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -show status like "Qcache_inserts"; -Variable_name Value -Qcache_inserts 39 -drop table t1; -# -# Comments before command -# -# On node-1 -connection node_1; -create table t1 (a int) engine=innodb; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -/**/ select * from t1; -a -/**/ select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 13 -# On node-2 -connection node_2; -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 11 -/**/ select * from t1; -a -/**/ select * from t1; -a -show status like "Qcache_queries_in_cache"; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 12 -drop table t1; -# -# Information schema & query cache test -# -# On node-1 -connection node_1; -set session query_cache_type = 2; -create table t1(a int) engine=innodb; -select table_name from information_schema.tables -where table_schema="test"; -table_name -t1 -drop table t1; -select table_name from information_schema.tables -where table_schema="test"; -table_name -set session query_cache_type = 1; -set global query_cache_size=1024*1024; -flush query cache; -create table t1 ( a int ) engine=myisam; -insert into t1 values (1); -select a from t1; -a -1 -select a from t1; -a -1 -show status like 'qcache_queries_in_cache'; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 14 -repair table t1; -Table Op Msg_type Msg_text -test.t1 repair status OK -show status like 'qcache_queries_in_cache'; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 14 -# On node-2 -connection node_2; -select a from t1; -a -select a from t1; -a -show status like 'qcache_queries_in_cache'; -Variable_name Value -Qcache_queries_in_cache 1 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 13 -repair table t1; -Table Op Msg_type Msg_text -test.t1 repair status OK -show status like 'qcache_queries_in_cache'; -Variable_name Value -Qcache_queries_in_cache 0 -show status like "Qcache_hits"; -Variable_name Value -Qcache_hits 13 -drop table t1; -# Restore original settings. -# On node-1 -connection node_1; -SET GLOBAL query_cache_size=@query_cache_size_saved; -SET GLOBAL query_cache_type=@query_cache_type_saved; - -# On node-2 -connection node_2; -SET GLOBAL query_cache_size=@query_cache_size_saved; -SET GLOBAL query_cache_type=@query_cache_type_saved; -# End of test diff --git a/mysql-test/suite/galera/t/galera_gcache_recover_manytrx.test b/mysql-test/suite/galera/t/galera_gcache_recover_manytrx.test index 08165f30f7d..d92288b7881 100644 --- a/mysql-test/suite/galera/t/galera_gcache_recover_manytrx.test +++ b/mysql-test/suite/galera/t/galera_gcache_recover_manytrx.test @@ -126,6 +126,7 @@ DELIMITER ;| --send CALL insert_10m (); --connection node_2 +call mtr.add_suppression("Error in Log_event::read_log_event():.*"); SET SESSION wsrep_sync_wait = 0; # Make sure that node_2 is not killed while TOIs are applied. @@ -199,6 +200,7 @@ DROP PROCEDURE insert_1k; DROP PROCEDURE insert_1m; --connection node_1 +call mtr.add_suppression("Error in Log_event::read_log_event():.*"); CALL mtr.add_suppression("conflict state 7 after post commit"); # Warning happens when the cluster is started for the first time @@ -213,6 +215,7 @@ CALL mtr.add_suppression("Skipped GCache ring buffer recovery"); --source include/assert_grep.inc --connection node_2 +call mtr.add_suppression("Error in Log_event::read_log_event():.*"); CALL mtr.add_suppression("Skipped GCache ring buffer recovery"); # Confirm that gcache recovery took place diff --git a/mysql-test/suite/galera/t/query_cache.cnf b/mysql-test/suite/galera/t/query_cache.cnf deleted file mode 100644 index 4a82e9fa037..00000000000 --- a/mysql-test/suite/galera/t/query_cache.cnf +++ /dev/null @@ -1,9 +0,0 @@ -!include ../galera_2nodes.cnf - -[mysqld.1] -query_cache_type=1 - -[mysqld.2] -query_cache_type=1 - - diff --git a/mysql-test/suite/galera/t/query_cache.test b/mysql-test/suite/galera/t/query_cache.test deleted file mode 100644 index aeec67fb576..00000000000 --- a/mysql-test/suite/galera/t/query_cache.test +++ /dev/null @@ -1,1112 +0,0 @@ ---source include/galera_cluster.inc ---source include/have_innodb.inc ---source include/have_query_cache.inc - ---echo ---echo # Execute FLUSH/RESET commands. ---echo # On node-1 ---connection node_1 -SET @query_cache_size_saved=@@GLOBAL.query_cache_size; -SET @query_cache_type_saved=@@GLOBAL.query_cache_type; -set GLOBAL query_cache_size=1355776; -flush query cache; # This crashed in some versions -reset query cache; -flush status; - ---echo # On node-2 ---connection node_2 -SET @query_cache_size_saved=@@GLOBAL.query_cache_size; -SET @query_cache_type_saved=@@GLOBAL.query_cache_type; -set GLOBAL query_cache_size=1355776; -flush query cache; # This crashed in some versions -reset query cache; -flush status; - -# -# INSERT/UPDATE/DELETE/DROP/SELECT -# - ---echo # On node-1 ---connection node_1 -create table t1 (a int not null) engine=innodb; -insert into t1 values (1),(2),(3); -select * from t1; -select * from t1; -select sql_no_cache * from t1; -select length(now()) from t1; - -show status like "Qcache_queries_in_cache"; -show status like "Qcache_inserts"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 - -select * from t1; -select * from t1; -select sql_no_cache * from t1; -select length(now()) from t1; - -show status like "Qcache_queries_in_cache"; -show status like "Qcache_inserts"; -show status like "Qcache_hits"; - -# DELETE should invalidate cache on both the nodes. ---echo # On node-1 ---connection node_1 -delete from t1 where a=1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -# Add a SELECT to the cache. ---echo # On node-1 ---connection node_1 -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -# UPDATE should invalidate cache on both the nodes. ---echo # On node-1 ---connection node_1 -update t1 set a=1 where a=3; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -# Add a SELECT to the cache. ---echo # On node-1 ---connection node_1 -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -# DROP should invalidate cache on both the nodes. ---echo # On node-1 ---connection node_1 -drop table t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# MERGE TABLES with INSERT/UPDATE and DELETE -# ---echo ---echo # On node-1 ---connection node_1 -create table t1 (a int not null) ENGINE=MyISAM; -insert into t1 values (1),(2),(3); -create table t2 (a int not null) ENGINE=MyISAM; -insert into t2 values (4),(5),(6); -create table t3 (a int not null) engine=MERGE UNION=(t1,t2) INSERT_METHOD=FIRST; -# insert -select * from t3; -select * from t3; -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -insert into t2 values (7); -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t1; -select * from t1; -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -insert into t3 values (8); -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -# update -select * from t3; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -update t2 set a=9 where a=7; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -update t3 set a=10 where a=1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -#delete -select * from t3; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -delete from t2 where a=9; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -delete from t3 where a=10; -select * from t3; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -# MERGE table, expect no records. -select * from t3; -select * from t3; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_inserts"; -show status like "Qcache_hits"; - -drop table t1, t2, t3; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# SELECT SQL_CACHE ... -# ---echo # On node-1 ---connection node_1 -set query_cache_type=demand; -create table t1 (a int not null) engine=innodb; -insert into t1 values (1),(2),(3); -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select sql_cache * from t1 union select * from t1; -set query_cache_type=2; -select sql_cache * from t1 union select * from t1; -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; -set query_cache_type=on; - ---echo # On node-2 ---connection node_2 -set query_cache_type=demand; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select sql_cache * from t1 union select * from t1; -set query_cache_type=2; -select sql_cache * from t1 union select * from t1; -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; -set query_cache_type=on; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# SELECT SQL_NO_CACHE -# ---echo # On node-1 ---connection node_1 -select sql_no_cache * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; ---echo # On node-2 ---connection node_2 -select sql_no_cache * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Check that queries that uses NOW(), LAST_INSERT_ID()... are not cached. -# ---echo # On node-1 ---connection node_1 -create table t1 (a text not null) engine=innodb; -select CONNECTION_ID() from t1; -select FOUND_ROWS(); -select NOW() from t1; -select CURDATE() from t1; -select CURTIME() from t1; -select DATABASE() from t1; -select ENCRYPT("test") from t1; -select LAST_INSERT_ID() from t1; -select RAND() from t1; -select UNIX_TIMESTAMP() from t1; -select USER() from t1; -select CURRENT_USER() from t1; -select benchmark(1,1) from t1; -explain extended select benchmark(1,1) from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; ---echo # On node-2 ---connection node_2 -select CONNECTION_ID() from t1; -select FOUND_ROWS(); -select NOW() from t1; -select CURDATE() from t1; -select CURTIME() from t1; -select DATABASE() from t1; -select ENCRYPT("test") from t1; -select LAST_INSERT_ID() from t1; -select RAND() from t1; -select UNIX_TIMESTAMP() from t1; -select USER() from t1; -select CURRENT_USER() from t1; -select benchmark(1,1) from t1; -explain extended select benchmark(1,1) from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Non-cachable ODBC work around (and prepare cache for drop database) -# ---echo # On node-1 ---connection node_1 -create database mysqltest; -create table mysqltest.t1 (i int not null auto_increment, a int, primary key - (i)) engine=innodb; -insert into mysqltest.t1 values (1, 1); -select * from mysqltest.t1 where i is null; -create table t1(a int) engine=innodb; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from mysqltest.t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from mysqltest.t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -# -# drop db -# -drop database mysqltest; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Charset conversion (cp1251_koi8 always present) -# Note: Queries using different default character sets are cached separately. -# ---echo # On node-1 ---connection node_1 -create table t1 (a char(1) not null collate koi8r_general_ci) engine=innodb; -insert into t1 values(_koi8r 0xc3); -set CHARACTER SET koi8r; -select * from t1; -set CHARACTER SET cp1251_koi8; -select * from t1; -set CHARACTER SET DEFAULT; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -set CHARACTER SET koi8r; -select * from t1; -set CHARACTER SET cp1251_koi8; -select * from t1; -set CHARACTER SET DEFAULT; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Same tables in different dbs -# ---echo # On node-1 ---connection node_1 -create database if not exists mysqltest; -create table mysqltest.t1 (i int not null) engine=innodb; -create table t1 (i int not null) engine=innodb; -insert into mysqltest.t1 (i) values (1); -insert into t1 (i) values (2); - -select * from t1; -use mysqltest; -select * from t1; -select * from t1; -use test; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select * from t1; -use mysqltest; -select * from t1; -select * from t1; -use test; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop database mysqltest; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# FOUND_ROWS() -# ---echo # On node-1 ---connection node_1 -create table t1 (i int not null) engine=innodb; -insert into t1 (i) values (1),(2),(3),(4); - -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -select * from t1 where i=1; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -select * from t1 where i=1; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - ---echo # On node-2 ---connection node_2 -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -select * from t1 where i=1; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -select SQL_CALC_FOUND_ROWS * from t1 limit 2; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -select * from t1 where i=1; -select FOUND_ROWS(); -show status like "Qcache_hits"; -show status like "Qcache_queries_in_cache"; - -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Test insert delayed (MYISAM) -# - ---echo # On node-2 ---connection node_2 -flush query cache; -reset query cache; - ---echo # On node-1 ---connection node_1 -flush query cache; -reset query cache; - -create table t1 (a int not null) ENGINE=MYISAM; -insert into t1 values (1),(2),(3); -select * from t1; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -insert delayed into t1 values (4); ---sleep 5 # Wait for insert delayed to be executed. -select a from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select * from t1; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -insert delayed into t1 values (4); ---sleep 5 # Wait for insert delayed to be executed. -select a from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -drop table t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-1 ---connection node_1 -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; - -# -# Test of min result data unit size changing -# ---echo # On node-2 ---connection node_2 -show global variables like "query_cache_min_res_unit"; -set GLOBAL query_cache_min_res_unit=1001; -show global variables like "query_cache_min_res_unit"; - ---echo # On node-1 ---connection node_1 -show global variables like "query_cache_min_res_unit"; -set GLOBAL query_cache_min_res_unit=1001; -show global variables like "query_cache_min_res_unit"; -create table t1 (a int not null) engine=innodb; -insert into t1 values (1),(2),(3); -create table t2 (a int not null) engine=innodb; -insert into t2 values (1),(2),(3); -select * from t1; -select * from t1; -select * from t2; -select * from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; - ---echo # On node-2 ---connection node_2 -select * from t1; -select * from t1; -select * from t2; -select * from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop table t1; -select a from t2; -select a from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -set GLOBAL query_cache_min_res_unit=default; -show global variables like "query_cache_min_res_unit"; - ---echo # On node-1 ---connection node_1 -select a from t2; -select a from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -drop table t2; -set GLOBAL query_cache_min_res_unit=default; -show global variables like "query_cache_min_res_unit"; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Case sensitive test -# ---echo # On node-1 ---connection node_1 -create table t1 (a int not null) engine=innodb; -insert into t1 values (1); -select "aaa" from t1; -select "AAA" from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; - ---echo # On node-2 ---connection node_2 -select "aaa" from t1; -select "AAA" from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Test of query cache resizing -# ---echo # On node-1 ---connection node_1 -create table t1 (a int) engine=innodb; -set GLOBAL query_cache_size=1000; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=1024; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=10240; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=20480; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=40960; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=51200; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=61440; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=81920; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=102400; -show global variables like "query_cache_size"; -select * from t1; - ---echo # On node-2 ---connection node_2 -set GLOBAL query_cache_size=1000; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=1024; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=10240; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=20480; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=40960; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=51200; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=61440; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=81920; -show global variables like "query_cache_size"; -select * from t1; -set GLOBAL query_cache_size=102400; -show global variables like "query_cache_size"; -select * from t1; - -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Temporary tables (ignored by Galera) -# ---echo # On node-1 ---connection node_1 -set GLOBAL query_cache_size=1048576; -create table t1 (i int not null) engine=innodb; -create table t2 (i int not null) engine=innodb; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -create temporary table t3 (i int not null); -select * from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t3; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -update t1 set i=(select distinct 1 from (select * from t2) a); -drop table t3; - ---echo # On node-2 ---connection node_2 -set GLOBAL query_cache_size=1048576; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -drop table t1, t2; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# System databse test (no need to perform it on node_2) -# Note: Queries on system tables are not cached. -# ---echo # On node-1 ---connection node_1 -use mysql; -disable_result_log; -select * from db; -enable_result_log; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -use test; -disable_result_log; -select * from mysql.db; -enable_result_log; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -# -# Simple rename test -# ---echo # On node-1 ---connection node_1 -create table t1(id int auto_increment primary key) engine=innodb; -insert into t1 values (1), (2), (3); -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-1 ---connection node_1 -alter table t1 rename to t2; ---error ER_NO_SUCH_TABLE -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 ---error ER_NO_SUCH_TABLE -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -drop table t2; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Load data invalidation test -# ---echo # On node-1 ---connection node_1 -create table t1 (word char(20) not null) engine=innodb; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR -eval load data infile '$MYSQLTEST_VARDIR/std_data/words.dat' into table t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; ---let $wait_condition = SELECT COUNT(*) = 70 FROM t1; ---source include/wait_condition.inc - ---echo # On node-2 ---connection node_2 ---let $wait_condition = SELECT COUNT(*) = 70 FROM t1; ---source include/wait_condition.inc -select count(*) from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR -eval load data infile '$MYSQLTEST_VARDIR/std_data/words.dat' into table t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select count(*) from t1; - -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - ---echo # ---echo # INTO OUTFILE/DUMPFILE test ---echo # ---echo # On node-1 ---connection node_1 -create table t1 (a int) engine=innodb; -insert into t1 values (1),(2),(3); -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t1 into outfile "query_cache.out.file"; ---error ER_FILE_EXISTS_ERROR -select * from t1 into outfile "query_cache.out.file"; -select * from t1 limit 1 into dumpfile "query_cache.dump.file"; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -drop table t1; -let $datadir=`select @@datadir`; ---remove_file $datadir/test/query_cache.dump.file ---remove_file $datadir/test/query_cache.out.file - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - ---echo # ---echo # Test of SQL_SELECT_LIMIT ---echo # ---echo # On node-1 ---connection node_1 -create table t1 (a int) engine=innodb; -insert into t1 values (1),(2); -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t1; -SET SQL_SELECT_LIMIT=1; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -SET SQL_SELECT_LIMIT=DEFAULT; - ---echo # On node-2 ---connection node_2 -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -select * from t1; -SET SQL_SELECT_LIMIT=1; -select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -SET SQL_SELECT_LIMIT=DEFAULT; - -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - ---echo # ---echo # WRITE LOCK & QC ---echo # ---echo # On node-1 ---connection node_1 -create table t1 (a int not null) engine=innodb; -create table t2 (a int not null) engine=innodb; - -set query_cache_wlock_invalidate=1; -create view v1 as select * from t1; -select * from t1; -select * from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -lock table t1 write, t2 read; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -unlock table; -select * from t1; -# Implicit locking of t1 does not invalidate QC -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -lock table v1 write; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -unlock table; -drop view v1; -set query_cache_wlock_invalidate=default; - ---echo # On node-2 ---connection node_2 -set query_cache_wlock_invalidate=1; -create view v1 as select * from t1; -select * from t1; -select * from t2; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -lock table t1 write, t2 read; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -unlock table; -select * from t1; -# Implicit locking of t1 does not invalidate QC -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -lock table v1 write; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -unlock table; -drop view v1; -set query_cache_wlock_invalidate=default; - -drop table t1,t2; - ---echo # ---echo # Hiding real table stored in query cache by temporary table ---echo # ---echo # On node-1 ---connection node_1 -create table t1 (id int primary key) engine=innodb; -insert into t1 values (1),(2),(3); -select * from t1; -create temporary table t1 (a int not null auto_increment primary key); -select * from t1; -drop table t1; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - -# -# Test character set related variables: -# character_set_result -# character_set_client -# charactet_set_connection/collation_connection -# If at least one of the above variables has changed, -# the cached query can't be reused. In the below test -# absolutely the same query is used several times, -# SELECT should fetch different results for every instance. -# No hits should be produced. -# New cache entry should appear for every SELECT. -# - ---echo # On node-1 ---connection node_1 -SET NAMES koi8r; -CREATE TABLE t1 (a char(1) character set koi8r) engine=innodb; -INSERT INTO t1 VALUES (_koi8r 0xc3),(_koi8r 0xc3); -# -# Run select -# -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -# -# Change collation_connection and run the same query again -# -set collation_connection=koi8r_bin; -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -# -# Now change character_set_client and run the same query again -# -set character_set_client=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -# -# And finally change character_set_results and run the same query again -# -set character_set_results=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -SET NAMES default; - ---echo # On node-2 ---connection node_2 - ---echo # ---echo # Run select ---echo # - -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -# -# Change collation_connection and run the same query again -# -set collation_connection=koi8r_bin; -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -# -# Now change character_set_client and run the same query again -# -set character_set_client=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; -# -# And finally change character_set_results and run the same query again -# -set character_set_results=cp1251; -SELECT a,'Â','â'='Â' FROM t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -show status like "Qcache_inserts"; - -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - ---echo # ---echo # Comments before command ---echo # - ---echo # On node-1 ---connection node_1 -create table t1 (a int) engine=innodb; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -/**/ select * from t1; -/**/ select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; -/**/ select * from t1; -/**/ select * from t1; -show status like "Qcache_queries_in_cache"; -show status like "Qcache_hits"; - -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - ---echo # ---echo # Information schema & query cache test ---echo # - ---echo # On node-1 ---connection node_1 -set session query_cache_type = 2; -create table t1(a int) engine=innodb; -select table_name from information_schema.tables -where table_schema="test"; -drop table t1; -select table_name from information_schema.tables -where table_schema="test"; -# Bug #8480: REPAIR TABLE needs to flush the table from the query cache -set session query_cache_type = 1; -set global query_cache_size=1024*1024; -flush query cache; -create table t1 ( a int ) engine=myisam; # myisam for repair tables -insert into t1 values (1); -select a from t1; -select a from t1; -show status like 'qcache_queries_in_cache'; -show status like "Qcache_hits"; -repair table t1; -show status like 'qcache_queries_in_cache'; -show status like "Qcache_hits"; - ---echo # On node-2 ---connection node_2 -select a from t1; -select a from t1; -show status like 'qcache_queries_in_cache'; -show status like "Qcache_hits"; -repair table t1; -show status like 'qcache_queries_in_cache'; -show status like "Qcache_hits"; -drop table t1; - -# -# RESET QUERY CACHE -# ---source include/reset_query_cache.inc - ---echo # Restore original settings. ---echo # On node-1 ---connection node_1 -SET GLOBAL query_cache_size=@query_cache_size_saved; -SET GLOBAL query_cache_type=@query_cache_type_saved; ---echo ---echo # On node-2 ---connection node_2 -SET GLOBAL query_cache_size=@query_cache_size_saved; -SET GLOBAL query_cache_type=@query_cache_type_saved; - ---echo # End of test diff --git a/mysql-test/suite/galera_3nodes/disabled.def b/mysql-test/suite/galera_3nodes/disabled.def index a45e856d519..97e4a215b04 100644 --- a/mysql-test/suite/galera_3nodes/disabled.def +++ b/mysql-test/suite/galera_3nodes/disabled.def @@ -10,20 +10,5 @@ # ############################################################################## -GAL-501 : MDEV-24645 galera_3nodes.GAL-501 MTR failed: failed to open gcomm backend connection: 110 -galera_2_cluster : MDEV-22195 temporarily disabled due to issues to be fixed with MDEV-22195 -galera_gtid_2_cluster : MDEV-23775 Galera test failure on galera_3nodes.galera_gtid_2_cluster -galera_ist_gcache_rollover : MDEV-23578 WSREP: exception caused by message: {v=0,t=1,ut=255,o=4,s=0,sr=0,as=1,f=6,src=50524cfe,srcvid=view_id(REG,50524cfe,4),insvid=view_id(UNKNOWN,00000000,0),ru=00000000,r=[-1,-1],fs=75,nl=(} -galera_load_data_ist : MDEV-24639 galera_3nodes.galera_load_data_ist MTR failed with SIGABRT: query 'reap' failed: 2013: Lost connection to MySQL server during query -galera_load_data_ist : MDEV-24639 galera_3nodes.galera_load_data_ist MTR failed with SIGABRT: query 'reap' failed: 2013: Lost connection to MySQL server during query -galera_pc_bootstrap : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_safe_to_bootstrap : MDEV-24097 galera_3nodes.galera_safe_to_bootstrap MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_slave_options_do : MDEV-8798 -galera_slave_options_ignore : MDEV-8798 -galera_ipv6_mariabackup : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_ipv6_mariabackup_section : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_ipv6_rsync : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_ipv6_rsync_section : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_ssl_reload : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_toi_vote : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed -galera_wsrep_schema_init : MDEV-24097 MTR sporadaically fails: Failed to start mysqld or mysql_shutdown failed +galera_2_cluster : MDEV-29877 Galera test failure on galera_2_cluster +galera_gtid_2_cluster : MDEV-29877 Galera test failure on galera_2_cluster diff --git a/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result b/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result index 2138f48adda..5d4b1d43fd6 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result +++ b/mysql-test/suite/galera_3nodes/r/galera_safe_to_bootstrap.result @@ -65,5 +65,5 @@ Table Create Table t1 CREATE TABLE `t1` ( `f1` int(11) NOT NULL, PRIMARY KEY (`f1`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes/r/galera_slave_options_do.result b/mysql-test/suite/galera_3nodes/r/galera_slave_options_do.result deleted file mode 100644 index 7185e92863d..00000000000 --- a/mysql-test/suite/galera_3nodes/r/galera_slave_options_do.result +++ /dev/null @@ -1,28 +0,0 @@ -CREATE DATABASE db1; -CREATE DATABASE db2; -CREATE TABLE db1.t1 (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2A (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2B (f1 INTEGER) ENGINE=InnoDB; -INSERT INTO db1.t1 VALUES (1); -INSERT INTO db2.t2A VALUES (2); -INSERT INTO db2.t2B VALUES (3); -SELECT COUNT(*) = 0 FROM db1.t1; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM db2.t2A; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 1 FROM db2.t2B; -COUNT(*) = 1 -1 -SELECT COUNT(*) = 0 FROM db1.t1; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 1 FROM db2.t2A; -COUNT(*) = 1 -1 -SELECT COUNT(*) = 1 FROM db2.t2B; -COUNT(*) = 1 -1 -DROP SCHEMA db1; -DROP SCHEMA db2; diff --git a/mysql-test/suite/galera_3nodes/r/galera_slave_options_ignore.result b/mysql-test/suite/galera_3nodes/r/galera_slave_options_ignore.result deleted file mode 100644 index 7185e92863d..00000000000 --- a/mysql-test/suite/galera_3nodes/r/galera_slave_options_ignore.result +++ /dev/null @@ -1,28 +0,0 @@ -CREATE DATABASE db1; -CREATE DATABASE db2; -CREATE TABLE db1.t1 (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2A (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2B (f1 INTEGER) ENGINE=InnoDB; -INSERT INTO db1.t1 VALUES (1); -INSERT INTO db2.t2A VALUES (2); -INSERT INTO db2.t2B VALUES (3); -SELECT COUNT(*) = 0 FROM db1.t1; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM db2.t2A; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 1 FROM db2.t2B; -COUNT(*) = 1 -1 -SELECT COUNT(*) = 0 FROM db1.t1; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 1 FROM db2.t2A; -COUNT(*) = 1 -1 -SELECT COUNT(*) = 1 FROM db2.t2B; -COUNT(*) = 1 -1 -DROP SCHEMA db1; -DROP SCHEMA db2; diff --git a/mysql-test/suite/galera_3nodes/r/galera_wsrep_schema_init.result b/mysql-test/suite/galera_3nodes/r/galera_wsrep_schema_init.result index d9d3e817bed..862e14d0269 100644 --- a/mysql-test/suite/galera_3nodes/r/galera_wsrep_schema_init.result +++ b/mysql-test/suite/galera_3nodes/r/galera_wsrep_schema_init.result @@ -14,7 +14,7 @@ wsrep_cluster CREATE TABLE `wsrep_cluster` ( `protocol_version` int(11) NOT NULL, `capabilities` int(11) NOT NULL, PRIMARY KEY (`cluster_uuid`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 STATS_PERSISTENT=0 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci STATS_PERSISTENT=0 SHOW CREATE TABLE mysql.wsrep_cluster_members; Table Create Table wsrep_cluster_members CREATE TABLE `wsrep_cluster_members` ( @@ -23,7 +23,7 @@ wsrep_cluster_members CREATE TABLE `wsrep_cluster_members` ( `node_name` char(32) NOT NULL, `node_incoming_address` varchar(256) NOT NULL, PRIMARY KEY (`node_uuid`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1 STATS_PERSISTENT=0 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci STATS_PERSISTENT=0 SELECT @@sql_safe_updates; @@sql_safe_updates 1 diff --git a/mysql-test/suite/galera_3nodes/t/galera_slave_options_do.cnf b/mysql-test/suite/galera_3nodes/t/galera_slave_options_do.cnf deleted file mode 100644 index 1ebde6186c1..00000000000 --- a/mysql-test/suite/galera_3nodes/t/galera_slave_options_do.cnf +++ /dev/null @@ -1,7 +0,0 @@ -!include ../galera_3nodes.cnf - -[mysqld.1] -binlog-do-db=db2 - -[mysqld.2] -replicate-wild-do-table=db2.t2B diff --git a/mysql-test/suite/galera_3nodes/t/galera_slave_options_do.test b/mysql-test/suite/galera_3nodes/t/galera_slave_options_do.test deleted file mode 100644 index 1437c90c670..00000000000 --- a/mysql-test/suite/galera_3nodes/t/galera_slave_options_do.test +++ /dev/null @@ -1,34 +0,0 @@ -# -# This tests checks the operation of binlog-do-db , replicate-wild-do-table -# - ---source include/galera_cluster.inc ---source include/have_innodb.inc - ---connection node_1 -CREATE DATABASE db1; -CREATE DATABASE db2; - -CREATE TABLE db1.t1 (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2A (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2B (f1 INTEGER) ENGINE=InnoDB; - -INSERT INTO db1.t1 VALUES (1); -INSERT INTO db2.t2A VALUES (2); -INSERT INTO db2.t2B VALUES (3); - ---connection node_2 -SELECT COUNT(*) = 0 FROM db1.t1; -SELECT COUNT(*) = 0 FROM db2.t2A; -SELECT COUNT(*) = 1 FROM db2.t2B; - - ---connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 ---connection node_3 -SELECT COUNT(*) = 0 FROM db1.t1; -SELECT COUNT(*) = 1 FROM db2.t2A; -SELECT COUNT(*) = 1 FROM db2.t2B; - ---connection node_1 -DROP SCHEMA db1; -DROP SCHEMA db2; diff --git a/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.cnf b/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.cnf deleted file mode 100644 index 9b78d47e254..00000000000 --- a/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.cnf +++ /dev/null @@ -1,7 +0,0 @@ -!include ../galera_3nodes.cnf - -[mysqld.1] -binlog-ignore-db=db1 - -[mysqld.2] -replicate-wild-ignore-table=db2.t2A diff --git a/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test b/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test deleted file mode 100644 index 8e73dee70ae..00000000000 --- a/mysql-test/suite/galera_3nodes/t/galera_slave_options_ignore.test +++ /dev/null @@ -1,35 +0,0 @@ -# -# This tests checks the operation of binlog-ignore-db , replicate-wild-ignore-table -# - ---source include/galera_cluster.inc ---source include/have_innodb.inc - ---connection node_1 -CREATE DATABASE db1; -CREATE DATABASE db2; - -CREATE TABLE db1.t1 (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2A (f1 INTEGER) ENGINE=InnoDB; -CREATE TABLE db2.t2B (f1 INTEGER) ENGINE=InnoDB; - -INSERT INTO db1.t1 VALUES (1); -INSERT INTO db2.t2A VALUES (2); -INSERT INTO db2.t2B VALUES (3); - ---connection node_2 -SELECT COUNT(*) = 0 FROM db1.t1; -SELECT COUNT(*) = 0 FROM db2.t2A; -SELECT COUNT(*) = 1 FROM db2.t2B; - - ---connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 ---connection node_3 ---source include/galera_wait_ready.inc -SELECT COUNT(*) = 0 FROM db1.t1; -SELECT COUNT(*) = 1 FROM db2.t2A; -SELECT COUNT(*) = 1 FROM db2.t2B; - ---connection node_1 -DROP SCHEMA db1; -DROP SCHEMA db2; diff --git a/mysql-test/suite/galera_3nodes_sr/disabled.def b/mysql-test/suite/galera_3nodes_sr/disabled.def index f1ec92eee79..df2277fb8ad 100644 --- a/mysql-test/suite/galera_3nodes_sr/disabled.def +++ b/mysql-test/suite/galera_3nodes_sr/disabled.def @@ -1,5 +1,13 @@ -GCF-582 : -GCF-810A : -GCF-810B : -GCF-810C : -galera_sr_kill_slave_after_apply_rollback2 : \ No newline at end of file +############################################################################## +# +# List the test cases that are to be disabled temporarily. +# +# Separate the test case name and the comment with ':'. +# +# : MDEV- +# +# Do not use any TAB characters for whitespace. +# +############################################################################## + +galera_sr_kill_slave_after_apply_rollback2 : MDEV-29892 Galera test failure on galera_sr_kill_slave_after_apply_rollback2 \ No newline at end of file diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-582.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-582.result index 9e2a4823973..94bc532e021 100644 --- a/mysql-test/suite/galera_3nodes_sr/r/GCF-582.result +++ b/mysql-test/suite/galera_3nodes_sr/r/GCF-582.result @@ -1,4 +1,15 @@ +connection node_2; +connection node_1; +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_1; +connection node_2; +connection node_3; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; +connection node_2; +connection node_1; +connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1b; SET SESSION wsrep_trx_fragment_size = 1; SET AUTOCOMMIT=OFF; START TRANSACTION; @@ -7,17 +18,22 @@ INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); +connection node_2; +# restart SELECT COUNT(*) FROM mysql.wsrep_streaming_log; COUNT(*) 5 +connection node_1; SELECT COUNT(*) FROM mysql.wsrep_streaming_log; COUNT(*) 5 COMMIT; SELECT COUNT(*) FROM t1; COUNT(*) -5 +0 +connection node_2; SELECT COUNT(*) FROM t1; COUNT(*) -5 +0 DROP TABLE t1; +disconnect node_1b; diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-606.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-606.result index 775f7ee0412..a964537a8ae 100644 --- a/mysql-test/suite/galera_3nodes_sr/r/GCF-606.result +++ b/mysql-test/suite/galera_3nodes_sr/r/GCF-606.result @@ -1,5 +1,9 @@ connection node_2; connection node_1; +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_1; +connection node_2; +connection node_3; connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-810A.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-810A.result deleted file mode 100644 index 9a83ff3c041..00000000000 --- a/mysql-test/suite/galera_3nodes_sr/r/GCF-810A.result +++ /dev/null @@ -1,256 +0,0 @@ -SET GLOBAL debug="d,crash_last_fragment_commit_before_fragment_removal"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -crash_last_fragment_commit_before_fragment_removal -COMMIT; -Got one of the listed errors -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -SET GLOBAL debug="d,crash_last_fragment_commit_after_fragment_removal"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -crash_last_fragment_commit_after_fragment_removal -COMMIT; -Got one of the listed errors -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -SET GLOBAL debug="d,crash_replicate_fragment_success"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -crash_replicate_fragment_success -COMMIT; -Got one of the listed errors -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -SET GLOBAL debug="d,crash_replicate_fragment_after_certify"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -crash_replicate_fragment_after_certify -COMMIT; -Got one of the listed errors -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -SET GLOBAL debug="d,crash_replicate_fragment_before_certify"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -crash_replicate_fragment_before_certify -COMMIT; -Got one of the listed errors -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-810B.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-810B.result deleted file mode 100644 index bbec3531a49..00000000000 --- a/mysql-test/suite/galera_3nodes_sr/r/GCF-810B.result +++ /dev/null @@ -1,100 +0,0 @@ -SET GLOBAL debug="d,crash_apply_cb_before_append_frag"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -SET GLOBAL debug="d,crash_apply_cb_after_append_frag"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'); -COMMIT; -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(DISTINCT node_uuid) = 1 FROM mysql.wsrep_streaming_log; -COUNT(DISTINCT node_uuid) = 1 -1 -COMMIT; -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug = ''; -CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member"); -DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/r/GCF-810C.result b/mysql-test/suite/galera_3nodes_sr/r/GCF-810C.result deleted file mode 100644 index 1a6dcbfd392..00000000000 --- a/mysql-test/suite/galera_3nodes_sr/r/GCF-810C.result +++ /dev/null @@ -1,177 +0,0 @@ -SET GLOBAL debug="d,crash_commit_cb_last_fragment_commit_success"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -SET SESSION wsrep_trx_fragment_size=1; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'); -SELECT 1 FROM t1; -Got one of the listed errors -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug="d,crash_commit_cb_before_last_fragment_commit"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -SET SESSION wsrep_trx_fragment_size=1; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'); -SELECT 1 FROM t1; -Got one of the listed errors -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug="d,crash_apply_cb_after_fragment_removal"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -SET SESSION wsrep_trx_fragment_size=1; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'); -SELECT 1 FROM t1; -Got one of the listed errors -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SET GLOBAL debug="d,crash_apply_cb_before_fragment_removal"; -DROP TABLE IF EXISTS t1; -CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE = InnoDB; -SET AUTOCOMMIT=OFF; -SET SESSION wsrep_trx_fragment_size=1; -START TRANSACTION; -INSERT INTO t1 VALUES ('secondary'),('secondary'),('secondary'),('secondary'),('secondary'); -SET SESSION wsrep_trx_fragment_size=1; -INSERT INTO t1 VALUES ('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'),('primary'); -SELECT 1 FROM t1; -Got one of the listed errors -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -SELECT * FROM mysql.wsrep_streaming_log; -node_uuid trx_id seqno flags frag -SELECT COUNT(*) > 0 FROM t1 WHERE f1 = 'primary'; -COUNT(*) > 0 -1 -SELECT COUNT(*) = 0 FROM t1 WHERE f1 = 'secondary'; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 -DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/r/MDEV-26707.result b/mysql-test/suite/galera_3nodes_sr/r/MDEV-26707.result index 8de724c1576..9addd29b0ea 100644 --- a/mysql-test/suite/galera_3nodes_sr/r/MDEV-26707.result +++ b/mysql-test/suite/galera_3nodes_sr/r/MDEV-26707.result @@ -5,6 +5,9 @@ connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; connect node_3a, 127.0.0.1, root, , test, $NODE_MYPORT_3; connection node_1; +connection node_2; +connection node_3; +connection node_1; CREATE TABLE t1 (f1 INTEGER PRIMARY KEY); connection node_2; SET SESSION wsrep_trx_fragment_size=1; diff --git a/mysql-test/suite/galera_3nodes_sr/r/galera_sr_isolate_master.result b/mysql-test/suite/galera_3nodes_sr/r/galera_sr_isolate_master.result index bb4eb829abc..d38a2779c96 100644 --- a/mysql-test/suite/galera_3nodes_sr/r/galera_sr_isolate_master.result +++ b/mysql-test/suite/galera_3nodes_sr/r/galera_sr_isolate_master.result @@ -1,5 +1,9 @@ connection node_2; connection node_1; +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_1; +connection node_2; +connection node_3; connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; SET SESSION wsrep_trx_fragment_size = 1; @@ -22,7 +26,7 @@ connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; connection node_1a; SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; connection node_2; -connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_3; connection node_2; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; diff --git a/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_after_apply_rollback2.result b/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_after_apply_rollback2.result index 21e301ed353..31413fbb80a 100644 --- a/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_after_apply_rollback2.result +++ b/mysql-test/suite/galera_3nodes_sr/r/galera_sr_kill_slave_after_apply_rollback2.result @@ -1,3 +1,11 @@ +connection node_2; +connection node_1; +connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; +connection node_1; +connection node_2; +connection node_3; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1a; SET SESSION wsrep_trx_fragment_size = 1; SET AUTOCOMMIT=OFF; START TRANSACTION; @@ -7,25 +15,33 @@ INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); +connection node_2; SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; Killing server ... +connection node_1; INSERT INTO t1 VALUES (6); ROLLBACK; -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 +SELECT COUNT(*) FROM mysql.wsrep_streaming_log; +COUNT(*) +5 +connection node_2; +# restart +connection node_1; +connection node_2; SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -SELECT COUNT(*) = 0 FROM t1; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 -1 +SELECT COUNT(*) FROM t1; +COUNT(*) +6 +SELECT COUNT(*) FROM mysql.wsrep_streaming_log; +COUNT(*) +5 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; -SELECT COUNT(*) = 0 FROM t1; -COUNT(*) = 0 -1 -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; -COUNT(*) = 0 +SELECT COUNT(*) FROM t1; +COUNT(*) 1 +SELECT COUNT(*) FROM mysql.wsrep_streaming_log; +COUNT(*) +5 +connection node_1; +disconnect node_1a; DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-582.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-582.test index bf19ea84c87..20580c37298 100644 --- a/mysql-test/suite/galera_3nodes_sr/t/GCF-582.test +++ b/mysql-test/suite/galera_3nodes_sr/t/GCF-582.test @@ -1,6 +1,14 @@ --source include/galera_cluster.inc --source include/have_innodb.inc +--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 + +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--LET $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc + --connection node_1 CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; @@ -11,6 +19,8 @@ CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB; --let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' --source include/wait_condition.inc +--connect node_1b, 127.0.0.1, root, , test, $NODE_MYPORT_1 +--connection node_1b SET SESSION wsrep_trx_fragment_size = 1; SET AUTOCOMMIT=OFF; START TRANSACTION; @@ -37,3 +47,6 @@ SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1; DROP TABLE t1; + +--disconnect node_1b +--source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-606.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-606.test index 6d49247ab5e..879c007e601 100644 --- a/mysql-test/suite/galera_3nodes_sr/t/GCF-606.test +++ b/mysql-test/suite/galera_3nodes_sr/t/GCF-606.test @@ -6,6 +6,13 @@ # The master transitions to a non-prim view and back to prim. Its ongoing # should fail to commit. # +--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 + +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--LET $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc --connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2 @@ -78,3 +85,4 @@ DROP TABLE t1; --connection node_2 CALL mtr.add_suppression("WSREP: failed to send SR rollback for "); +--source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test deleted file mode 100644 index fda16b7265c..00000000000 --- a/mysql-test/suite/galera_3nodes_sr/t/GCF-810A.test +++ /dev/null @@ -1,137 +0,0 @@ -# -# Exercise the crash points which crash the server at various points important to SR -# - ---source include/big_test.inc ---source include/galera_cluster.inc ---source include/have_debug_sync.inc - ---connect node_2_check, 127.0.0.1, root, , test, $NODE_MYPORT_2 ---connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 ---connect node_3_check, 127.0.0.1, root, , test, $NODE_MYPORT_3 - -# -# crash_last_fragment_commit_before_fragment_removal -# - ---connection node_2 ---enable_reconnect -SET GLOBAL debug_dbug="d,crash_last_fragment_commit_before_fragment_removal"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes.inc - ---echo crash_last_fragment_commit_before_fragment_removal - ---connection node_2 ---error 2006,2013 -COMMIT; - ---connection node_1 ---let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name = 'wsrep_cluster_size' ---source include/wait_condition.inc - ---connection node_2 ---source include/start_mysqld.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check.inc - -# -# crash_last_fragment_commit_after_fragment_removal -# - ---connection node_2 -SET GLOBAL debug_dbug="d,crash_last_fragment_commit_after_fragment_removal"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes.inc - ---echo crash_last_fragment_commit_after_fragment_removal - ---connection node_2 ---error 2006,2013 -COMMIT; - ---connection node_1 ---let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE variable_name = 'wsrep_cluster_size' ---source include/wait_condition.inc - ---connection node_2 ---source include/start_mysqld.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check.inc - -# -# crash_last_fragment_commit_success -# -# Case crash_last_fragment_commit_success is commented out, -# the changes will be visible on slave due to succesful commit, -# so the galera_sr_crash_post_check will fail. -# - -# --connection node_2 -# SET GLOBAL debug_dbug="d,crash_last_fragment_commit_success"; -# --source suite/galera_3nodes/include/galera_expect_node_crash.inc -# --source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes.inc - -# --echo crash_last_fragment_commit_success - -# --connection node_2 -# --error 2006,2013 -# COMMIT; - -# --source include/start_mysqld.inc -# --source suite/galera_3nodes/include/galera_sr_crash_post_check.inc - -# -# crash_replicate_fragment_success -# - ---connection node_2 -SET GLOBAL debug_dbug="d,crash_replicate_fragment_success"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes.inc - ---echo crash_replicate_fragment_success - ---connection node_2 ---error 2006,2013 -COMMIT; - ---source include/start_mysqld.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check.inc - -# -# crash_replicate_fragment_after_certify -# - ---connection node_2 -SET GLOBAL debug_dbug="d,crash_replicate_fragment_after_certify"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes.inc - ---echo crash_replicate_fragment_after_certify - ---connection node_2 ---error 2006,2013 -COMMIT; - ---source include/start_mysqld.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check.inc - -# -# crash_replicate_fragment_before_certify -# - ---connection node_2 -SET GLOBAL debug_dbug="d,crash_replicate_fragment_before_certify"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes.inc - ---echo crash_replicate_fragment_before_certify - ---connection node_2 ---error 2006,2013 -COMMIT; - ---source include/start_mysqld.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check.inc - - -DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test deleted file mode 100644 index cb41b2348de..00000000000 --- a/mysql-test/suite/galera_3nodes_sr/t/GCF-810B.test +++ /dev/null @@ -1,49 +0,0 @@ -# -# Exercise the crash points which crash the server at various points important to SR -# - ---source include/big_test.inc ---source include/galera_cluster.inc ---source include/have_debug_sync.inc - ---connect node_2_check, 127.0.0.1, root, , test, $NODE_MYPORT_2 ---connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 ---connect node_3_check, 127.0.0.1, root, , test, $NODE_MYPORT_3 - -# -# crash_apply_cb_before_append_frag -# - ---connection node_3 -SET GLOBAL debug_dbug="d,crash_apply_cb_before_append_frag"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes2.inc - ---connection node_3 ---error 0,2006,2013 -COMMIT; - ---source include/start_mysqld.inc ---sleep 5 ---source suite/galera_3nodes/include/galera_sr_crash_post_check2.inc - -# -# crash_apply_cb_after_append_frag -# - ---connection node_3 -SET GLOBAL debug_dbug="d,crash_apply_cb_after_append_frag"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes2.inc - ---connection node_3 ---error 0,2006,2013 -COMMIT; - ---source include/start_mysqld.inc ---sleep 5 ---source suite/galera_3nodes/include/galera_sr_crash_post_check2.inc - ---connection node_1 -CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member"); -DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test b/mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test deleted file mode 100644 index 6c4da2cb5f0..00000000000 --- a/mysql-test/suite/galera_3nodes_sr/t/GCF-810C.test +++ /dev/null @@ -1,70 +0,0 @@ -# -# Exercise the crash points which crash the server at various points important to SR -# - ---source include/big_test.inc ---source include/galera_cluster.inc ---source include/have_debug_sync.inc - ---connect node_2_check, 127.0.0.1, root, , test, $NODE_MYPORT_2 ---connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 ---enable_reconnect ---connect node_3_check, 127.0.0.1, root, , test, $NODE_MYPORT_3 - -# -# crash_commit_cb_last_fragment_commit_success -# - ---connection node_3 -SET GLOBAL debug_dbug="d,crash_commit_cb_last_fragment_commit_success"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes3.inc - ---source include/start_mysqld.inc ---sleep 5 ---source include/galera_wait_ready.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check3.inc - -# -# crash_commit_cb_before_last_fragment_commit -# - ---connection node_3 -SET GLOBAL debug_dbug="d,crash_commit_cb_before_last_fragment_commit"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes3.inc - ---source include/start_mysqld.inc ---sleep 5 ---source include/galera_wait_ready.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check3.inc - -# -# crash_apply_cb_after_fragment_removal -# - ---connection node_3 -SET GLOBAL debug_dbug="d,crash_apply_cb_after_fragment_removal"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes3.inc - ---source include/start_mysqld.inc ---sleep 5 ---source include/galera_wait_ready.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check3.inc - -# -# crash_apply_cb_before_fragment_removal -# - ---connection node_3 -SET GLOBAL debug_dbug="d,crash_apply_cb_before_fragment_removal"; ---source suite/galera_3nodes/include/galera_expect_node_crash.inc ---source suite/galera_3nodes/include/galera_sr_crash_prepare_nodes3.inc - ---source include/start_mysqld.inc ---sleep 5 ---source include/galera_wait_ready.inc ---source suite/galera_3nodes/include/galera_sr_crash_post_check3.inc - -DROP TABLE t1; diff --git a/mysql-test/suite/galera_3nodes_sr/t/MDEV-26707.test b/mysql-test/suite/galera_3nodes_sr/t/MDEV-26707.test index ed7adc8313a..cc0f9c85432 100644 --- a/mysql-test/suite/galera_3nodes_sr/t/MDEV-26707.test +++ b/mysql-test/suite/galera_3nodes_sr/t/MDEV-26707.test @@ -24,6 +24,11 @@ --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 --connect node_3a, 127.0.0.1, root, , test, $NODE_MYPORT_3 +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc --connection node_1 CREATE TABLE t1 (f1 INTEGER PRIMARY KEY); @@ -160,3 +165,5 @@ SELECT COUNT(*) AS EXPECT_0 FROM mysql.wsrep_streaming_log; --connection node_1 DROP TABLE t1; + +--source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_isolate_master.test b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_isolate_master.test index 30fd0192f26..27674148f46 100644 --- a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_isolate_master.test +++ b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_isolate_master.test @@ -4,6 +4,12 @@ # # Test the effect of gmcast.isolate on master during an SR transaction # +--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc --connection node_1 CREATE TABLE t1 (f1 INTEGER) ENGINE=InnoDB; @@ -41,7 +47,7 @@ SET GLOBAL wsrep_provider_options='gmcast.isolate=1'; --source include/wait_condition.inc --source include/galera_wait_ready.inc ---connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 +--connection node_3 --let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' --source include/wait_condition.inc --source include/galera_wait_ready.inc @@ -125,3 +131,5 @@ SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; --connection node_1 CALL mtr.add_suppression("failed to send SR rollback for"); DROP TABLE t1; + +--source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_after_apply_rollback2.test b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_after_apply_rollback2.test index 83964769ef5..6ca2011d221 100644 --- a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_after_apply_rollback2.test +++ b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_after_apply_rollback2.test @@ -7,8 +7,15 @@ --source include/galera_cluster.inc --source include/have_innodb.inc ---connection node_1 +--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--let $node_3=node_3 +--source ../galera/include/auto_increment_offset_save.inc +--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1 +--connection node_1a --let $wsrep_trx_fragment_size_orig = `SELECT @@wsrep_trx_fragment_size` SET SESSION wsrep_trx_fragment_size = 1; SET AUTOCOMMIT=OFF; @@ -33,7 +40,7 @@ SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; INSERT INTO t1 VALUES (6); ROLLBACK; -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; +SELECT COUNT(*) FROM mysql.wsrep_streaming_log; --connection node_2 --source include/start_mysqld.inc @@ -42,15 +49,20 @@ SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; --source include/wait_until_connected_again.inc --source include/galera_wait_ready.inc ---connection node_2 +--connection node_1 +--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc --connection node_2 SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -SELECT COUNT(*) = 0 FROM t1; -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM mysql.wsrep_streaming_log; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; -SELECT COUNT(*) = 0 FROM t1; -SELECT COUNT(*) = 0 FROM mysql.wsrep_streaming_log; +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM mysql.wsrep_streaming_log; +--connection node_1 +--disconnect node_1a DROP TABLE t1; +--source ../galera/include/auto_increment_offset_restore.inc diff --git a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test index ea549a6bea2..08a59296e41 100644 --- a/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test +++ b/mysql-test/suite/galera_3nodes_sr/t/galera_sr_kill_slave_before_apply.test @@ -7,7 +7,6 @@ --source include/galera_cluster.inc --source include/have_innodb.inc - --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 # Save original auto_increment_offset values. --let $node_1=node_1 diff --git a/mysql-test/suite/galera_sr/disabled.def b/mysql-test/suite/galera_sr/disabled.def index 58b4af32300..9f2cf27d5e7 100644 --- a/mysql-test/suite/galera_sr/disabled.def +++ b/mysql-test/suite/galera_sr/disabled.def @@ -10,4 +10,5 @@ # ############################################################################## -GCF-1060 : MDEV-26528 wrong usage of mutex LOCK_thd_kill and LOCK_thd_kill +galera_sr_cc_master : MDEV-29882 Galera test failure on galera_sr_cc_master + From a4914008332e5b7ecec8e060434ba97203940ac4 Mon Sep 17 00:00:00 2001 From: Julius Goryavsky Date: Fri, 28 Oct 2022 11:16:25 +0200 Subject: [PATCH 2/4] MDEV-29814: galera_var_notify_ssl_ipv6 causes testing system to hang This commit fixes the test system hanging due to the galera_var_notify_ssl_ipv6 test and also brings the wsrep_notify[_ssl].sh files in line with each other between the user template and the mtr suite. Quotes are also added here to avoid problems if the user specifies the value of one of the variables at the beginning of the file containing shell-specific characters, for example, if the password or username specified in the PSWD and USER variables will contain the "$" character. Also fixed an issue with automatic --ssl-verify-server-cert option substitution when the corresponding value is set by the user to "1" or "on". Also fixed some tests here to avoid joining one of the nodes to another cluster when the nodes are restarted from the mtr side, which can lead to random failures when testing with buildbot. --- mysql-test/std_data/wsrep_notify.sh | 57 ++++++++-------- mysql-test/std_data/wsrep_notify_ssl.sh | 51 +++++++------- .../galera/r/galera_wsrep_new_cluster.result | 12 ++++ .../galera/t/galera_var_notify_ssl_ipv6.cnf | 8 +-- .../t/galera_wsrep_new_cluster-master.opt | 1 - .../galera/t/galera_wsrep_new_cluster.test | 54 +++++++++++++++ support-files/wsrep_notify.sh | 66 ++++++++++--------- 7 files changed, 161 insertions(+), 88 deletions(-) delete mode 100644 mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt diff --git a/mysql-test/std_data/wsrep_notify.sh b/mysql-test/std_data/wsrep_notify.sh index 80333b2eab8..828d5cf99da 100755 --- a/mysql-test/std_data/wsrep_notify.sh +++ b/mysql-test/std_data/wsrep_notify.sh @@ -6,30 +6,32 @@ # # Edit parameters below to specify the address and login to server: # -USER=root -PSWD= +USER='root' +PSWD='' # # If these parameters are not set, then the values # passed by the server are taken: # -HOST=127.0.0.1 +HOST="127.0.0.1" PORT=$NODE_MYPORT_1 # # Edit parameters below to specify SSL parameters: # -ssl_key= -ssl_cert= -ssl_ca= -ssl_capath= -ssl_cipher= -ssl_crl= -ssl_crlpath= +ssl_cert="" +ssl_key="" +ssl_ca="" +ssl_capath="" +ssl_cipher="" +ssl_crl="" +ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="$EXE_MYSQL" - +# +# Name of schema and tables: +# SCHEMA="mtr_wsrep_notify" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" @@ -65,9 +67,9 @@ configuration_change() do echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, " # Don't forget to properly quote string values - echo "'$NODE'" | sed s/\\//\',\'/g + echo "'$NODE'" | sed s/\\//\',\'/g echo ");" - idx=$(( $idx + 1 )) + idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" @@ -102,34 +104,35 @@ trim_string() fi } -COM=status_update # not a configuration change by default +COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" -PRIMARY="0" +PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in - --status) + '--status') STATUS=$(trim_string "$2") shift ;; - --uuid) + '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; - --primary) - [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" - COM=configuration_change + '--primary') + arg=$(trim_string "$2") + [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 + COM='configuration_change' shift ;; - --index) + '--index') INDEX=$(trim_string "$2") shift ;; - --members) + '--members') MEMBERS=$(trim_string "$2") shift ;; @@ -168,9 +171,7 @@ ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" -if [ -n "$ssl_key" -o -n "$ssl_cert" -o \ - -n "$ssl_ca" -o -n "$ssl_capath" -o \ - -n "$ssl_cipher" ] +if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" @@ -181,8 +182,10 @@ then [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then - if [ $ssl_verify_server_cert -ne 0 ]; then - SSL_PARAM+=' --ssl-verify-server-cert' + if [ "$ssl_verify_server_cert" != "0" -o \ + "$ssl_verify_server_cert" = "on" ] + then + SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi diff --git a/mysql-test/std_data/wsrep_notify_ssl.sh b/mysql-test/std_data/wsrep_notify_ssl.sh index 6c96db1a4e5..ce5e3f8c695 100755 --- a/mysql-test/std_data/wsrep_notify_ssl.sh +++ b/mysql-test/std_data/wsrep_notify_ssl.sh @@ -6,13 +6,13 @@ # # Edit parameters below to specify the address and login to server: # -USER=root -PSWD= +USER='root' +PSWD='' # # If these parameters are not set, then the values # passed by the server are taken: # -HOST=127.0.0.1 +HOST="127.0.0.1" PORT=$NODE_MYPORT_1 # # Edit parameters below to specify SSL parameters: @@ -20,16 +20,18 @@ PORT=$NODE_MYPORT_1 ssl_cert="$MYSQL_TEST_DIR/std_data/client-cert.pem" ssl_key="$MYSQL_TEST_DIR/std_data/client-key.pem" ssl_ca="$MYSQL_TEST_DIR/std_data/cacert.pem" -ssl_capath= -ssl_cipher= -ssl_crl= -ssl_crlpath= +ssl_capath="" +ssl_cipher="" +ssl_crl="" +ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="$EXE_MYSQL" - +# +# Name of schema and tables: +# SCHEMA="mtr_wsrep_notify" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" @@ -65,9 +67,9 @@ configuration_change() do echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, " # Don't forget to properly quote string values - echo "'$NODE'" | sed s/\\//\',\'/g + echo "'$NODE'" | sed s/\\//\',\'/g echo ");" - idx=$(( $idx + 1 )) + idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" @@ -102,34 +104,35 @@ trim_string() fi } -COM=status_update # not a configuration change by default +COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" -PRIMARY="0" +PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in - --status) + '--status') STATUS=$(trim_string "$2") shift ;; - --uuid) + '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; - --primary) - [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" - COM=configuration_change + '--primary') + arg=$(trim_string "$2") + [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 + COM='configuration_change' shift ;; - --index) + '--index') INDEX=$(trim_string "$2") shift ;; - --members) + '--members') MEMBERS=$(trim_string "$2") shift ;; @@ -168,9 +171,7 @@ ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" -if [ -n "$ssl_key" -o -n "$ssl_cert" -o \ - -n "$ssl_ca" -o -n "$ssl_capath" -o \ - -n "$ssl_cipher" ] +if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" @@ -181,8 +182,10 @@ then [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then - if [ $ssl_verify_server_cert -ne 0 ]; then - SSL_PARAM+=' --ssl-verify-server-cert' + if [ "$ssl_verify_server_cert" != "0" -o \ + "$ssl_verify_server_cert" = "on" ] + then + SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi diff --git a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result index 244623d52b7..143dee3e6e4 100644 --- a/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result +++ b/mysql-test/suite/galera/r/galera_wsrep_new_cluster.result @@ -1,6 +1,14 @@ connection node_2; connection node_1; connection node_1; +connection node_2; +connection node_2; +Shutting down server ... +connection node_1; +connection node_2; +Cleaning grastate.dat file ... +Starting server ... +connection node_1; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; VARIABLE_VALUE Primary @@ -38,3 +46,7 @@ VARIABLE_VALUE SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; VARIABLE_VALUE Synced +Shutting down server ... +Cleaning var directory ... +Starting server ... +connection node_1; diff --git a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf index ce121d20e03..db6f36605b7 100644 --- a/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf +++ b/mysql-test/suite/galera/t/galera_var_notify_ssl_ipv6.cnf @@ -7,14 +7,14 @@ ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem bind-address=:: [mysqld.1] -wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.1.#galera_port;ist.recv_addr=[::1]:@mysqld.1.#ist_port;gcache.size=1;pc.ignore_sb=true' +wsrep_provider_options='base_host=[::1];base_port=@mysqld.1.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.1.#galera_port;ist.recv_addr=[::1]:@mysqld.1.#ist_port;repl.causal_read_timeout=PT90S;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_node_incoming_address='[::1]:@mysqld.1.port' -wsrep_node_address=::1 +wsrep_node_address=[::1]:@mysqld.1.#galera_port wsrep_sst_receive_address='[::1]:@mysqld.1.#sst_port' [mysqld.2] wsrep_cluster_address='gcomm://[::1]:@mysqld.1.#galera_port' -wsrep_provider_options='base_port=@mysqld.2.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.2.#galera_port;ist.recv_addr=[::1]:@mysqld.2.#ist_port;gcache.size=1;pc.ignore_sb=true' -wsrep_node_address=::1 +wsrep_provider_options='base_host=[::1];base_port=@mysqld.2.#galera_port;gmcast.listen_addr=tcp://[::]:@mysqld.2.#galera_port;ist.recv_addr=[::1]:@mysqld.2.#ist_port;repl.causal_read_timeout=PT90S;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M' wsrep_node_incoming_address='[::1]:@mysqld.2.port' +wsrep_node_address=[::1]:@mysqld.2.#galera_port wsrep_sst_receive_address='[::1]:@mysqld.2.#sst_port' diff --git a/mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt b/mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt deleted file mode 100644 index c31150c46af..00000000000 --- a/mysql-test/suite/galera/t/galera_wsrep_new_cluster-master.opt +++ /dev/null @@ -1 +0,0 @@ ---wsrep-new-cluster diff --git a/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test b/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test index 84b6c032fc6..94ea008cb16 100644 --- a/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test +++ b/mysql-test/suite/galera/t/galera_wsrep_new_cluster.test @@ -6,6 +6,34 @@ --source include/galera_cluster.inc +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + +--connection node_2 +--echo Shutting down server ... +--source include/shutdown_mysqld.inc + +--connection node_1 + +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + +--connection node_2 + +# +# Delete grastate.dat with safe_to_bootstrap: 0 +# +--echo Cleaning grastate.dat file ... +--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat + +--echo Starting server ... +--let $restart_noprint=2 +--let $start_mysqld_params="--wsrep-new-cluster" +--source include/start_mysqld.inc +--source include/wait_until_ready.inc + --connection node_1 --let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status'; @@ -37,3 +65,29 @@ SELECT (VARIABLE_VALUE = 0 OR VARIABLE_VALUE = 1 ) FROM INFORMATION_SCHEMA.GLOBA SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state'; SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; + +--echo Shutting down server ... +--source include/shutdown_mysqld.inc + +# +# Force SST +# +--echo Cleaning var directory ... +--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mtr +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/performance_schema +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/test +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data/mysql +--remove_files_wildcard $MYSQLTEST_VARDIR/mysqld.2/data + +--echo Starting server ... +--let $start_mysqld_params= +--source include/start_mysqld.inc +--source include/wait_until_ready.inc + +--connection node_1 + +--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + +--source include/auto_increment_offset_restore.inc diff --git a/support-files/wsrep_notify.sh b/support-files/wsrep_notify.sh index fd1a7546b71..4070ec920f8 100755 --- a/support-files/wsrep_notify.sh +++ b/support-files/wsrep_notify.sh @@ -6,30 +6,32 @@ # # Edit parameters below to specify the address and login to server: # -USER=root -PSWD=rootpass +USER='root' +PSWD='rootpass' # # If these parameters are not set, then the values # passed by the server are taken: # -HOST=127.0.0.1 +HOST="127.0.0.1" PORT=3306 # # Edit parameters below to specify SSL parameters: # -ssl_key= -ssl_cert= -ssl_ca= -ssl_capath= -ssl_cipher= -ssl_crl= -ssl_crlpath= +ssl_cert="" +ssl_key="" +ssl_ca="" +ssl_capath="" +ssl_cipher="" +ssl_crl="" +ssl_crlpath="" ssl_verify_server_cert=0 # # Client executable path: # CLIENT="mysql" - +# +# Name of schema and tables: +# SCHEMA="wsrep" MEMB_TABLE="$SCHEMA.membership" STATUS_TABLE="$SCHEMA.status" @@ -37,15 +39,14 @@ STATUS_TABLE="$SCHEMA.status" WSREP_ON='SET wsrep_on=ON' WSREP_OFF='SET wsrep_on=OFF' -BEGIN="$WSREP_OFF; -DROP SCHEMA IF EXISTS $SCHEMA; CREATE SCHEMA $SCHEMA; -CREATE TABLE $MEMB_TABLE ( +BEGIN="CREATE SCHEMA IF NOT EXISTS $SCHEMA; +CREATE TABLE IF NOT EXISTS $MEMB_TABLE ( idx INT UNIQUE PRIMARY KEY, uuid CHAR(40) UNIQUE, /* node UUID */ name VARCHAR(32), /* node name */ addr VARCHAR(256) /* node address */ ) ENGINE=MEMORY; -CREATE TABLE $STATUS_TABLE ( +CREATE TABLE IF NOT EXISTS $STATUS_TABLE ( size INT, /* component size */ idx INT, /* this node index */ status CHAR(16), /* this node status */ @@ -57,7 +58,7 @@ END="COMMIT; $WSREP_ON" configuration_change() { - echo "$BEGIN;" + echo "$WSREP_OFF; DROP SCHEMA IF EXISTS $SCHEMA; $BEGIN;" local idx=0 @@ -67,7 +68,7 @@ configuration_change() # Don't forget to properly quote string values echo "'$NODE'" | sed s/\\//\',\'/g echo ");" - idx=$(( $idx + 1 )) + idx=$(( $idx+1 )) done echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);" @@ -77,7 +78,7 @@ configuration_change() status_update() { - echo "$WSREP_OFF; BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;" + echo "$WSREP_OFF; $BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; $END;" } trim_string() @@ -102,34 +103,35 @@ trim_string() fi } -COM=status_update # not a configuration change by default +COM='status_update' # not a configuration change by default STATUS="" CLUSTER_UUID="" -PRIMARY="0" +PRIMARY=0 INDEX="" MEMBERS="" while [ $# -gt 0 ]; do case $1 in - --status) + '--status') STATUS=$(trim_string "$2") shift ;; - --uuid) + '--uuid') CLUSTER_UUID=$(trim_string "$2") shift ;; - --primary) - [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0" - COM=configuration_change + '--primary') + arg=$(trim_string "$2") + [ "$arg" = 'yes' ] && PRIMARY=1 || PRIMARY=0 + COM='configuration_change' shift ;; - --index) + '--index') INDEX=$(trim_string "$2") shift ;; - --members) + '--members') MEMBERS=$(trim_string "$2") shift ;; @@ -168,9 +170,7 @@ ssl_verify_server_cert=$(trim_string "$ssl_verify_server_cert"); SSL_PARAM="" -if [ -n "$ssl_key" -o -n "$ssl_cert" -o \ - -n "$ssl_ca" -o -n "$ssl_capath" -o \ - -n "$ssl_cipher" ] +if [ -n "$ssl_key$ssl_cert$ssl_ca$ssl_capath$ssl_cipher$ssl_crl$ssl_crlpath" ] then SSL_PARAM=' --ssl' [ -n "$ssl_key" ] && SSL_PARAM="$SSL_PARAM --ssl-key='$ssl_key'" @@ -181,8 +181,10 @@ then [ -n "$ssl_crl" ] && SSL_PARAM="$SSL_PARAM --ssl-crl='$ssl_crl'" [ -n "$ssl_crlpath" ] && SSL_PARAM="$SSL_PARAM --ssl-crlpath='$ssl_crlpath'" if [ -n "$ssl_verify_server_cert" ]; then - if [ $ssl_verify_server_cert -ne 0 ]; then - SSL_PARAM+=' --ssl-verify-server-cert' + if [ "$ssl_verify_server_cert" != "0" -o \ + "$ssl_verify_server_cert" = "on" ] + then + SSL_PARAM="$SSL_PARAM --ssl-verify-server-cert" fi fi fi From c1cc6e84963e4f904bab758de40fe28c7eee4f68 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Mon, 12 Dec 2022 10:51:13 +1100 Subject: [PATCH 3/4] Correct DBUG_ENTER for Pushdown_derived::execute --- sql/derived_handler.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/derived_handler.cc b/sql/derived_handler.cc index 70cc04bf9c7..adb04e08c63 100644 --- a/sql/derived_handler.cc +++ b/sql/derived_handler.cc @@ -52,7 +52,7 @@ int Pushdown_derived::execute() TABLE *table= handler->table; TMP_TABLE_PARAM *tmp_table_param= handler->tmp_table_param; - DBUG_ENTER("Pushdown_query::execute"); + DBUG_ENTER("Pushdown_derived::execute"); if ((err= handler->init_scan())) goto error; From 382e85fe70cfffb6c7190c627647c19aed3912a5 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Tue, 22 Nov 2022 13:47:14 +1100 Subject: [PATCH 4/4] MDEV-30065: mariadb-install-db allow for --enforce-storage-engine=InnoDB Hide the errors related to missing innodb stats tables in bootstrap mode on the assumption that because we are in bootstrap mode they are going to be created. --- storage/innobase/dict/dict0dict.cc | 4 ++-- storage/innobase/dict/dict0stats.cc | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc index c91d8c0110d..6fe40c75555 100644 --- a/storage/innobase/dict/dict0dict.cc +++ b/storage/innobase/dict/dict0dict.cc @@ -5646,14 +5646,14 @@ dict_table_schema_check( /* no such table */ if (innobase_strcasecmp(req_schema->table_name, "mysql/innodb_table_stats") == 0) { - if (innodb_table_stats_not_found_reported == false) { + if (innodb_table_stats_not_found_reported == false && !opt_bootstrap) { innodb_table_stats_not_found = true; innodb_table_stats_not_found_reported = true; } else { should_print = false; } } else if (innobase_strcasecmp(req_schema->table_name, "mysql/innodb_index_stats") == 0 ) { - if (innodb_index_stats_not_found_reported == false) { + if (innodb_index_stats_not_found_reported == false && !opt_bootstrap) { innodb_index_stats_not_found = true; innodb_index_stats_not_found_reported = true; } else { diff --git a/storage/innobase/dict/dict0stats.cc b/storage/innobase/dict/dict0stats.cc index 4adc06efd6d..5371fe50dbc 100644 --- a/storage/innobase/dict/dict0stats.cc +++ b/storage/innobase/dict/dict0stats.cc @@ -3293,7 +3293,8 @@ dict_stats_update( or is corrupted, calculate the transient stats */ if (innodb_table_stats_not_found == false && - table->stats_error_printed == false) { + table->stats_error_printed == false && + !opt_bootstrap) { ib::error() << "Fetch of persistent statistics" " requested for table " << table->name