committed by
Nirbhay Choubey
17 changed files with 724 additions and 0 deletions
-
36mysql-test/suite/galera/r/galera_autoinc_sst_xtrabackup.result
-
20mysql-test/suite/galera/r/galera_drop_multi.result
-
4mysql-test/suite/galera/r/galera_kill_applier.result
-
22mysql-test/suite/galera/r/galera_ssl_compression.result
-
3mysql-test/suite/galera/r/galera_sst_xtrabackup-v2-options.result
-
53mysql-test/suite/galera/r/galera_wan_restart_ist.result
-
53mysql-test/suite/galera/r/galera_wan_restart_sst.result
-
13mysql-test/suite/galera/t/galera_autoinc_sst_xtrabackup.cnf
-
95mysql-test/suite/galera/t/galera_autoinc_sst_xtrabackup.test
-
41mysql-test/suite/galera/t/galera_drop_multi.test
-
26mysql-test/suite/galera/t/galera_kill_applier.test
-
24mysql-test/suite/galera/t/galera_sst_xtrabackup-v2-options.cnf
-
13mysql-test/suite/galera/t/galera_sst_xtrabackup-v2-options.test
-
14mysql-test/suite/galera/t/galera_wan_restart_ist.cnf
-
148mysql-test/suite/galera/t/galera_wan_restart_ist.test
-
14mysql-test/suite/galera/t/galera_wan_restart_sst.cnf
-
145mysql-test/suite/galera/t/galera_wan_restart_sst.test
@ -0,0 +1,36 @@ |
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB; |
|||
CREATE PROCEDURE p1 () |
|||
BEGIN |
|||
DECLARE x INT DEFAULT 1; |
|||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; |
|||
WHILE 1 DO |
|||
INSERT INTO t1 VALUES (DEFAULT); |
|||
COMMIT; |
|||
END WHILE; |
|||
END| |
|||
CALL p1();; |
|||
CALL p1();; |
|||
Killing server ... |
|||
INSERT INTO t1 VALUES (DEFAULT); |
|||
INSERT INTO t1 VALUES (DEFAULT); |
|||
Got one of the listed errors |
|||
Got one of the listed errors |
|||
count_equal |
|||
1 |
|||
CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member 0"); |
|||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE |
|||
2 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE |
|||
2 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
DROP PROCEDURE p1; |
|||
DROP TABLE t1; |
|||
CALL mtr.add_suppression("gcs_caused\\(\\) returned -1 \\(Operation not permitted\\)"); |
|||
CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member 0"); |
|||
@ -0,0 +1,20 @@ |
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM; |
|||
CREATE TEMPORARY TABLE t2 (f1 INTEGER) ENGINE=MyISAM; |
|||
CREATE TABLE t3 (f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE TEMPORARY TABLE t4 (f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE TABLE t5 (f1 INTEGER); |
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
DROP TABLE t1, t2, t3, t4; |
|||
INSERT INTO t5 VALUES (1); |
|||
COMMIT; |
|||
SHOW CREATE TABLE t1; |
|||
ERROR 42S02: Table 'test.t1' doesn't exist |
|||
SHOW CREATE TABLE t2; |
|||
ERROR 42S02: Table 'test.t2' doesn't exist |
|||
SHOW CREATE TABLE t3; |
|||
ERROR 42S02: Table 'test.t3' doesn't exist |
|||
SHOW CREATE TABLE t4; |
|||
ERROR 42S02: Table 'test.t4' doesn't exist |
|||
CALL mtr.add_suppression("Slave SQL: Error 'Unknown table 'test.t2,test.t4'' on query\. Default database: 'test'\. Query: 'DROP TABLE t1, t2, t3, t4', Error_code: 1051"); |
|||
DROP TABLE t5; |
|||
@ -0,0 +1,4 @@ |
|||
Got one of the listed errors |
|||
Got one of the listed errors |
|||
Got one of the listed errors |
|||
Got one of the listed errors |
|||
@ -0,0 +1,22 @@ |
|||
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; |
|||
VARIABLE_VALUE = 'Synced' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 'Synced' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_state_comment'; |
|||
VARIABLE_VALUE = 'Synced' |
|||
1 |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 2 |
|||
1 |
|||
SET GLOBAL wsrep_provider_options = "socket.ssl_compression=No"; |
|||
ERROR HY000: Incorrect arguments to SET |
|||
CREATE TABLE t1 (f1 VARCHAR(333) PRIMARY KEY, f2 BLOB) Engine=InnoDB; |
|||
INSERT INTO t1 VALUES (REPEAT('a', 333), REPEAT('b', 65535)); |
|||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = REPEAT('a', 333) AND f2 = REPEAT('b', 65535); |
|||
COUNT(*) = 1 |
|||
1 |
|||
DROP TABLE t1; |
|||
CALL mtr.add_suppression("Unknown parameter 'socket\.ssl_compression'"); |
|||
CALL mtr.add_suppression("Set options returned 7"); |
|||
@ -0,0 +1,3 @@ |
|||
SELECT 1; |
|||
1 |
|||
1 |
|||
@ -0,0 +1,53 @@ |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
CREATE TABLE t1 (f1 INTEGER); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t1 VALUES (2); |
|||
INSERT INTO t1 VALUES (3); |
|||
INSERT INTO t1 VALUES (4); |
|||
INSERT INTO t1 VALUES (13); |
|||
Shutting down server ... |
|||
INSERT INTO t1 VALUES (11); |
|||
INSERT INTO t1 VALUES (12); |
|||
INSERT INTO t1 VALUES (14); |
|||
INSERT INTO t1 VALUES (131); |
|||
INSERT INTO t1 VALUES (22); |
|||
Shutting down server ... |
|||
INSERT INTO t1 VALUES (21); |
|||
INSERT INTO t1 VALUES (23); |
|||
INSERT INTO t1 VALUES (24); |
|||
INSERT INTO t1 VALUES (221); |
|||
INSERT INTO t1 VALUES (34); |
|||
Shutting down server ... |
|||
INSERT INTO t1 VALUES (31); |
|||
INSERT INTO t1 VALUES (32); |
|||
INSERT INTO t1 VALUES (33); |
|||
INSERT INTO t1 VALUES (341); |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
DROP TABLE t1; |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
@ -0,0 +1,53 @@ |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
CREATE TABLE t1 (f1 INTEGER); |
|||
INSERT INTO t1 VALUES (1); |
|||
INSERT INTO t1 VALUES (2); |
|||
INSERT INTO t1 VALUES (3); |
|||
INSERT INTO t1 VALUES (4); |
|||
INSERT INTO t1 VALUES (13); |
|||
Killing server ... |
|||
INSERT INTO t1 VALUES (11); |
|||
INSERT INTO t1 VALUES (12); |
|||
INSERT INTO t1 VALUES (14); |
|||
INSERT INTO t1 VALUES (131); |
|||
INSERT INTO t1 VALUES (22); |
|||
Killing server ... |
|||
INSERT INTO t1 VALUES (21); |
|||
INSERT INTO t1 VALUES (23); |
|||
INSERT INTO t1 VALUES (24); |
|||
INSERT INTO t1 VALUES (221); |
|||
INSERT INTO t1 VALUES (34); |
|||
Killing server ... |
|||
INSERT INTO t1 VALUES (31); |
|||
INSERT INTO t1 VALUES (32); |
|||
INSERT INTO t1 VALUES (33); |
|||
INSERT INTO t1 VALUES (341); |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
VARIABLE_VALUE = 4 |
|||
1 |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
COUNT(*) = 19 |
|||
1 |
|||
DROP TABLE t1; |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
@ -0,0 +1,13 @@ |
|||
!include ../galera_2nodes.cnf |
|||
|
|||
[mysqld] |
|||
#wsrep_sst_method=xtrabackup-v2 |
|||
#wsrep_sst_auth="root:" |
|||
#wsrep_debug=ON |
|||
|
|||
[mysqld.1] |
|||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=1;pc.ignore_sb=true' |
|||
|
|||
[mysqld.2] |
|||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=1;pc.ignore_sb=true' |
|||
|
|||
@ -0,0 +1,95 @@ |
|||
# |
|||
# Test that autoincrement works correctly while the cluster membership |
|||
# is changing and IST takes place. |
|||
# |
|||
|
|||
--source include/big_test.inc |
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
--connection node_1 |
|||
--let $connection_id = `SELECT CONNECTION_ID()` |
|||
|
|||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB; |
|||
|
|||
# Issue an endless stream of autoincrement inserts |
|||
|
|||
DELIMITER |; |
|||
CREATE PROCEDURE p1 () |
|||
BEGIN |
|||
DECLARE x INT DEFAULT 1; |
|||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; |
|||
|
|||
WHILE 1 DO |
|||
INSERT INTO t1 VALUES (DEFAULT); |
|||
COMMIT; |
|||
END WHILE; |
|||
END| |
|||
DELIMITER ;| |
|||
|
|||
--send CALL p1(); |
|||
--sleep 2 |
|||
|
|||
--connection node_2 |
|||
--send CALL p1(); |
|||
--sleep 2 |
|||
|
|||
# Kill and restart node #2 |
|||
|
|||
--connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2 |
|||
--connection node_2a |
|||
--source include/kill_galera.inc |
|||
|
|||
--sleep 10 |
|||
--source include/start_mysqld.inc |
|||
--sleep 25 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (DEFAULT); |
|||
|
|||
# Terminate the stored procedure |
|||
|
|||
--connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1 |
|||
--connection node_1a |
|||
--disable_query_log |
|||
--eval KILL CONNECTION $connection_id |
|||
--enable_query_log |
|||
|
|||
INSERT INTO t1 VALUES (DEFAULT); |
|||
|
|||
--connection node_1 |
|||
# CR_SERVER_LOST |
|||
--error 2013,2006 |
|||
--reap |
|||
|
|||
--connection node_2 |
|||
# CR_SERVER_LOST |
|||
--error 2013,2006 |
|||
--reap |
|||
|
|||
--sleep 10 |
|||
|
|||
# Confirm that the count is correct and that the cluster is intact |
|||
|
|||
--connection node_1a |
|||
--let $count = `SELECT COUNT(*) FROM t1` |
|||
|
|||
--connection node_2a |
|||
--disable_query_log |
|||
--eval SELECT COUNT(*) = $count AS count_equal FROM t1 |
|||
--enable_query_log |
|||
|
|||
CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member 0"); |
|||
|
|||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
|
|||
--connection node_1a |
|||
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
|
|||
DROP PROCEDURE p1; |
|||
DROP TABLE t1; |
|||
|
|||
CALL mtr.add_suppression("gcs_caused\\(\\) returned -1 \\(Operation not permitted\\)"); |
|||
CALL mtr.add_suppression("WSREP: Action message in non-primary configuration from member 0"); |
|||
@ -0,0 +1,41 @@ |
|||
# |
|||
# Test that multi-table DROP TABLE statements are properly replicated |
|||
# See http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-20.html |
|||
# |
|||
|
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
CREATE TABLE t1 (f1 INTEGER) ENGINE=MyISAM; |
|||
CREATE TEMPORARY TABLE t2 (f1 INTEGER) ENGINE=MyISAM; |
|||
CREATE TABLE t3 (f1 INTEGER) ENGINE=InnoDB; |
|||
CREATE TEMPORARY TABLE t4 (f1 INTEGER) ENGINE=InnoDB; |
|||
|
|||
CREATE TABLE t5 (f1 INTEGER); |
|||
|
|||
SET AUTOCOMMIT=OFF; |
|||
START TRANSACTION; |
|||
|
|||
DROP TABLE t1, t2, t3, t4; |
|||
|
|||
INSERT INTO t5 VALUES (1); |
|||
|
|||
COMMIT; |
|||
|
|||
--connection node_2 |
|||
--error ER_NO_SUCH_TABLE |
|||
SHOW CREATE TABLE t1; |
|||
|
|||
--error ER_NO_SUCH_TABLE |
|||
SHOW CREATE TABLE t2; |
|||
|
|||
--error ER_NO_SUCH_TABLE |
|||
SHOW CREATE TABLE t3; |
|||
|
|||
--error ER_NO_SUCH_TABLE |
|||
SHOW CREATE TABLE t4; |
|||
|
|||
CALL mtr.add_suppression("Slave SQL: Error 'Unknown table 'test.t2,test.t4'' on query\. Default database: 'test'\. Query: 'DROP TABLE t1, t2, t3, t4', Error_code: 1051"); |
|||
|
|||
--connection node_1 |
|||
DROP TABLE t5; |
|||
@ -0,0 +1,26 @@ |
|||
# |
|||
# This test checks that applier threads are immune to KILL QUERY and KILL STATEMENT |
|||
# |
|||
|
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
--connection node_1 |
|||
|
|||
--let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE != 'wsrep aborter idle' OR STATE IS NULL LIMIT 1` |
|||
|
|||
--disable_query_log |
|||
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR |
|||
--eval KILL $applier_thread |
|||
|
|||
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR |
|||
--eval KILL QUERY $applier_thread |
|||
|
|||
--let $aborter_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep aborter idle' LIMIT 1` |
|||
|
|||
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR |
|||
--eval KILL $aborter_thread |
|||
|
|||
--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR |
|||
--eval KILL QUERY $aborter_thread |
|||
--enable_query_log |
|||
@ -0,0 +1,24 @@ |
|||
!include ../galera_2nodes.cnf |
|||
|
|||
[mysqld] |
|||
wsrep_sst_method=xtrabackup-v2 |
|||
wsrep_sst_auth="root:" |
|||
wsrep_debug=ON |
|||
|
|||
[xtrabackup] |
|||
backup-locks |
|||
close-files |
|||
compact |
|||
# compression requires qpress from the Percona repositories |
|||
# compress |
|||
# compress-threads=2 |
|||
encryption=AES256 |
|||
encrypt-key=4FA92C5873672E20FB163A0BCB2BB4A4 |
|||
galera-info |
|||
history=backup |
|||
parallel=2 |
|||
|
|||
[SST] |
|||
encrypt=1 |
|||
encrypt-algo=AES256 |
|||
encrypt-key=4FA92C5873672E20FB163A0BCB2BB4A4 |
|||
@ -0,0 +1,13 @@ |
|||
# |
|||
# This test checks that various options can be passed to xtrabackup via the my.cnf file |
|||
# Initial SST happens via xtrabackup, so there is not much to do in the body of the test |
|||
# |
|||
|
|||
--source include/big_test.inc |
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
SELECT 1; |
|||
|
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
@ -0,0 +1,14 @@ |
|||
!include ../galera_4nodes.cnf |
|||
|
|||
[mysqld.1] |
|||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.segment=1' |
|||
|
|||
[mysqld.2] |
|||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gmcast.segment=1' |
|||
|
|||
[mysqld.3] |
|||
wsrep_provider_options='base_port=@mysqld.3.#galera_port;gmcast.segment=2' |
|||
|
|||
[mysqld.4] |
|||
wsrep_provider_options='base_port=@mysqld.4.#galera_port;gmcast.segment=2' |
|||
|
|||
@ -0,0 +1,148 @@ |
|||
# |
|||
# Test that even after multiple restarts in a WAN context with two segments, the cluster continues to operate correctly. |
|||
# |
|||
# We can not easily restart the first node, so instead we restart all the other nodes. MTR does not allow multiple nodes |
|||
# to be down at the same time, so restarts are sequential. |
|||
# |
|||
# We can not test any of the actual WAN optimizations from inside MTR and no |
|||
# status variables are provided. So we only check that simple replication works. |
|||
# |
|||
|
|||
--source include/big_test.inc |
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 INTEGER); |
|||
INSERT INTO t1 VALUES (1); |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (2); |
|||
|
|||
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 |
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (3); |
|||
|
|||
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4 |
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (4); |
|||
|
|||
# |
|||
# Restart node #3 |
|||
# |
|||
|
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (13); |
|||
|
|||
--echo Shutting down server ... |
|||
--source include/shutdown_mysqld.inc |
|||
--sleep 5 |
|||
|
|||
--connection node_1 |
|||
INSERT INTO t1 VALUES (11); |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (12); |
|||
|
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (14); |
|||
|
|||
--connection node_3 |
|||
--source include/start_mysqld.inc |
|||
--sleep 5 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (131); |
|||
|
|||
# |
|||
# Restart node #2 |
|||
# |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (22); |
|||
|
|||
--echo Shutting down server ... |
|||
--source include/shutdown_mysqld.inc |
|||
--sleep 5 |
|||
|
|||
--connection node_1 |
|||
INSERT INTO t1 VALUES (21); |
|||
|
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (23); |
|||
|
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (24); |
|||
|
|||
--connection node_2 |
|||
--source include/start_mysqld.inc |
|||
--sleep 5 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (221); |
|||
|
|||
# |
|||
# Restart node #4 |
|||
# |
|||
|
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (34); |
|||
|
|||
--echo Shutting down server ... |
|||
--source include/shutdown_mysqld.inc |
|||
--sleep 5 |
|||
|
|||
--connection node_1 |
|||
INSERT INTO t1 VALUES (31); |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (32); |
|||
|
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (33); |
|||
|
|||
--connection node_4 |
|||
--source include/start_mysqld.inc |
|||
--sleep 5 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (341); |
|||
|
|||
|
|||
# |
|||
# Check all nodes |
|||
# |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
|
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_2 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_3 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_4 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_1 |
|||
DROP TABLE t1; |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
|
|||
--connection node_2 |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
|
|||
--connection node_3 |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
|
|||
--connection node_4 |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
@ -0,0 +1,14 @@ |
|||
!include ../galera_4nodes.cnf |
|||
|
|||
[mysqld.1] |
|||
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.segment=1' |
|||
|
|||
[mysqld.2] |
|||
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gmcast.segment=1' |
|||
|
|||
[mysqld.3] |
|||
wsrep_provider_options='base_port=@mysqld.3.#galera_port;gmcast.segment=2' |
|||
|
|||
[mysqld.4] |
|||
wsrep_provider_options='base_port=@mysqld.4.#galera_port;gmcast.segment=2' |
|||
|
|||
@ -0,0 +1,145 @@ |
|||
# |
|||
# Test that even after multiple restarts in a WAN context with two segments, the cluster continues to operate correctly. |
|||
# |
|||
# We can not easily restart the first node, so instead we restart all the other nodes. MTR does not allow multiple nodes |
|||
# to be down at the same time, so restarts are sequential. |
|||
# |
|||
# We can not test any of the actual WAN optimizations from inside MTR and no |
|||
# status variables are provided. So we only check that simple replication works. |
|||
# |
|||
|
|||
--source include/big_test.inc |
|||
--source include/galera_cluster.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
|
|||
--connection node_1 |
|||
CREATE TABLE t1 (f1 INTEGER); |
|||
INSERT INTO t1 VALUES (1); |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (2); |
|||
|
|||
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 |
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (3); |
|||
|
|||
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4 |
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (4); |
|||
|
|||
# |
|||
# Restart node #3 |
|||
# |
|||
|
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (13); |
|||
|
|||
--source include/kill_galera.inc |
|||
--sleep 5 |
|||
|
|||
--connection node_1 |
|||
INSERT INTO t1 VALUES (11); |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (12); |
|||
|
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (14); |
|||
|
|||
--connection node_3 |
|||
--source include/start_mysqld.inc |
|||
--sleep 5 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (131); |
|||
|
|||
# |
|||
# Restart node #2 |
|||
# |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (22); |
|||
|
|||
--source include/kill_galera.inc |
|||
--sleep 5 |
|||
|
|||
--connection node_1 |
|||
INSERT INTO t1 VALUES (21); |
|||
|
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (23); |
|||
|
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (24); |
|||
|
|||
--connection node_2 |
|||
--source include/start_mysqld.inc |
|||
--sleep 5 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (221); |
|||
|
|||
# |
|||
# Restart node #4 |
|||
# |
|||
|
|||
--connection node_4 |
|||
INSERT INTO t1 VALUES (34); |
|||
|
|||
--source include/kill_galera.inc |
|||
--sleep 5 |
|||
|
|||
--connection node_1 |
|||
INSERT INTO t1 VALUES (31); |
|||
|
|||
--connection node_2 |
|||
INSERT INTO t1 VALUES (32); |
|||
|
|||
--connection node_3 |
|||
INSERT INTO t1 VALUES (33); |
|||
|
|||
--connection node_4 |
|||
--source include/start_mysqld.inc |
|||
--sleep 5 |
|||
--source include/wait_until_connected_again.inc |
|||
|
|||
INSERT INTO t1 VALUES (341); |
|||
|
|||
|
|||
# |
|||
# Check all nodes |
|||
# |
|||
|
|||
--connection node_1 |
|||
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
--source include/wait_condition.inc |
|||
|
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_2 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_3 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_4 |
|||
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; |
|||
SELECT COUNT(*) = 19 FROM t1; |
|||
|
|||
--connection node_1 |
|||
DROP TABLE t1; |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
|
|||
--connection node_2 |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
|
|||
--connection node_3 |
|||
CALL mtr.add_suppression("There are no nodes in the same segment that will ever be able to become donors, yet there is a suitable donor outside"); |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
|
|||
--connection node_4 |
|||
CALL mtr.add_suppression("Action message in non-primary configuration from member 0"); |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue