mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
GAL-401: MTR test for the fix.
This commit is contained in:
parent
b666732182
commit
912ca4c153
2 changed files with 70 additions and 0 deletions
21
mysql-test/suite/galera/r/GAL-401.result
Normal file
21
mysql-test/suite/galera/r/GAL-401.result
Normal file
|
@ -0,0 +1,21 @@
|
|||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
|
||||
SET @@global.wsrep_desync = 1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
|
||||
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
|
||||
SHOW STATUS LIKE 'wsrep_desync_count';
|
||||
Variable_name Value
|
||||
wsrep_desync_count 0
|
||||
SET @@global.wsrep_desync = 0;
|
||||
SET SESSION wsrep_sync_wait=7;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`f1` int(11) NOT NULL,
|
||||
`f2` char(1) DEFAULT NULL,
|
||||
PRIMARY KEY (`f1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CALL mtr.add_suppression("WSREP: Protocol violation. JOIN message sender (.*) is not in state transfer \\(SYNCED\\). Message ignored.");
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=false';
|
49
mysql-test/suite/galera/t/GAL-401.test
Normal file
49
mysql-test/suite/galera/t/GAL-401.test
Normal file
|
@ -0,0 +1,49 @@
|
|||
# This tests proper desync counter cleanup when DONOR/DESYNC state is cleared.
|
||||
|
||||
--source include/galera_cluster.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
# Make node 1 tolerate split-brain
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';
|
||||
|
||||
# Desync and disconnect node 2 from the PC:
|
||||
--connection node_2
|
||||
SET @@global.wsrep_desync = 1;
|
||||
SET SESSION wsrep_sync_wait=0;
|
||||
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
|
||||
--let $wait_condition = SELECT VARIABLE_VALUE = 'non-Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||
--source include/wait_condition.inc
|
||||
|
||||
# Wait until node 2 disappears from the PC:
|
||||
--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
|
||||
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||
--source include/wait_condition.inc
|
||||
|
||||
# Modify app state to force node 2 into PRIMARY upon reconnection.
|
||||
CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1));
|
||||
|
||||
# Reconnect node 2 to the PC:
|
||||
--connection node_2
|
||||
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
|
||||
--let $wait_condition = SELECT VARIABLE_VALUE = 'Primary' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_status';
|
||||
--source include/wait_condition.inc
|
||||
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
|
||||
--source include/wait_condition.inc
|
||||
|
||||
# Must return 0:
|
||||
SHOW STATUS LIKE 'wsrep_desync_count';
|
||||
|
||||
# Resync node_2, should pass:
|
||||
SET @@global.wsrep_desync = 0;
|
||||
|
||||
SET SESSION wsrep_sync_wait=7;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CALL mtr.add_suppression("WSREP: Protocol violation. JOIN message sender (.*) is not in state transfer \\(SYNCED\\). Message ignored.");
|
||||
|
||||
--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
|
||||
SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=false';
|
Loading…
Reference in a new issue