Skip to content

Commit

Permalink
MDEV-16021: galera mtr test galera_evs_suspect_timeout crashed
Browse files Browse the repository at this point in the history
Crash was timeout crash. Add correct waits for connections, wsrep
sync waits and auto increment offset save and restore.
  • Loading branch information
Jan Lindström committed May 17, 2019
1 parent 61469b3 commit c84f390
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 25 deletions.
21 changes: 13 additions & 8 deletions mysql-test/suite/galera_3nodes/r/galera_evs_suspect_timeout.result
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
SET GLOBAL wsrep_provider_options = 'evs.inactive_timeout=PT100M; evs.suspect_timeout=PT1S';
SET GLOBAL wsrep_provider_options = 'evs.inactive_timeout=PT100M; evs.suspect_timeout=PT1S';
Suspending node ...
SET SESSION wsrep_sync_wait = 0;
SET SESSION wsrep_sync_wait=0;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
CREATE TABLE t1 (f1 INTEGER);
CREATE TABLE t1 (f1 INTEGER) engine=InnoDB;
INSERT INTO t1 VALUES (1);
SET SESSION wsrep_sync_wait = 0;
SET SESSION wsrep_sync_wait=0;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
VARIABLE_VALUE = 2
1
SET SESSION wsrep_sync_wait = DEFAULT;
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
SET SESSION wsrep_sync_wait = 15;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
DROP TABLE t1;
Resuming node ...
CALL mtr.add_suppression("WSREP: gcs_caused() returned -1 \\(Operation not permitted\\)");
CALL mtr.add_suppression("WSREP: gcs_caused.*");
CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg.*");
SET SESSION wsrep_sync_wait = 15;
SELECT COUNT(*) FROM t1;
COUNT(*)
1
DROP TABLE t1;
48 changes: 31 additions & 17 deletions mysql-test/suite/galera_3nodes/t/galera_evs_suspect_timeout.test
Original file line number Diff line number Diff line change
Expand Up @@ -7,62 +7,76 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc

--let $galera_connection_name = node_3
--let $galera_server_number = 3
--source include/galera_connect.inc
--let $wsrep_cluster_address_node3 = `SELECT @@wsrep_cluster_address`

# 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
--let $wsrep_provider_options_node1 = `SELECT @@wsrep_provider_options`
SET GLOBAL wsrep_provider_options = 'evs.inactive_timeout=PT100M; evs.suspect_timeout=PT1S';

--connection node_2
--source include/wait_until_connected_again.inc
--let $wsrep_provider_options_node2 = `SELECT @@wsrep_provider_options`
SET GLOBAL wsrep_provider_options = 'evs.inactive_timeout=PT100M; evs.suspect_timeout=PT1S';

--let $galera_connection_name = node_3
--let $galera_server_number = 3
--source include/galera_connect.inc
--connection node_3
--source include/wait_until_connected_again.inc
--let $wsrep_cluster_address_node3 = `SELECT @@wsrep_cluster_address`

# Suspend node #3

--connection node_3
--source include/galera_suspend.inc
--sleep 5

# Confirm that the other nodes have booted it out

--connection node_1
--source include/wait_until_connected_again.inc
SET SESSION wsrep_sync_wait = 0;
SET SESSION wsrep_sync_wait=0;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--disable_query_log
--eval SET GLOBAL wsrep_provider_options = '$wsrep_provider_options_node1';
--enable_query_log

--source include/wait_until_connected_again.inc
CREATE TABLE t1 (f1 INTEGER);

CREATE TABLE t1 (f1 INTEGER) engine=InnoDB;
INSERT INTO t1 VALUES (1);

--connection node_2
SET SESSION wsrep_sync_wait = 0;
--source include/wait_until_connected_again.inc
SET SESSION wsrep_sync_wait=0;
SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--disable_query_log
--eval SET GLOBAL wsrep_provider_options = '$wsrep_provider_options_node2';
--enable_query_log

--source include/wait_until_connected_again.inc
SET SESSION wsrep_sync_wait = DEFAULT;
SELECT COUNT(*) = 1 FROM t1;
DROP TABLE t1;

SET SESSION wsrep_sync_wait = 15;
SELECT COUNT(*) FROM t1;

# Reconnect node #3 so that MTR's end-of-test checks can run

--connection node_3
--source include/galera_resume.inc
--source include/wait_until_connected_again.inc

CALL mtr.add_suppression("WSREP: gcs_caused() returned -1 \\(Operation not permitted\\)");
CALL mtr.add_suppression("WSREP: gcs_caused.*");
CALL mtr.add_suppression("WSREP: gcs/src/gcs_core.cpp:core_handle_uuid_msg.*");

--disable_query_log
--eval SET GLOBAL wsrep_cluster_address = '$wsrep_cluster_address_node3';
--enable_query_log
--source include/wait_until_connected_again.inc

SET SESSION wsrep_sync_wait = 15;
SELECT COUNT(*) FROM t1;

--connection node_1
DROP TABLE t1;
# Restore original auto_increment_offset values.
--source ../galera/include/auto_increment_offset_restore.inc

0 comments on commit c84f390

Please sign in to comment.