Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
GAL-401: MTR test for the fix.
- Loading branch information
1 parent
5fc1ba6
commit 3045b60
Showing
2 changed files
with
69 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true'; | ||
| SET @@global.wsrep_desync = 1; | ||
| SET SESSION wsrep_dirty_reads=1; | ||
| 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'; | ||
| SET wsrep_dirty_reads=0; | ||
| SHOW STATUS LIKE 'wsrep_desync_count'; | ||
| Variable_name Value | ||
| wsrep_desync_count 0 | ||
| SET @@global.wsrep_desync = 0; | ||
| 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'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| # 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_dirty_reads=1; | ||
| 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'; | ||
| SET wsrep_dirty_reads=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; | ||
| 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'; |