MDEV-31888 : galera.galera_wan, galera.galera_vote_rejoin_* fail

Clean up configuration and tests. Add wait conditions to make
sure test continues from clean state.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
This commit is contained in:
Jan Lindström 2024-09-25 09:48:38 +03:00 committed by Julius Goryavsky
parent 9b3413c71f
commit 7ffa7b6b01
11 changed files with 70 additions and 27 deletions

View file

@ -10,6 +10,7 @@ wsrep-provider=@ENV.WSREP_PROVIDER
# enforce read-committed characteristics across the cluster
# wsrep-causal-reads=ON
wsrep-sync-wait=15
wsrep-debug=1
[mysqld.1]
wsrep-on=1
@ -17,7 +18,7 @@ wsrep-on=1
#ist_port=@OPT.port
#sst_port=@OPT.port
wsrep_cluster_address=gcomm://
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.1.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
wsrep_node_address='127.0.0.1:@mysqld.1.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.1.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.1.#sst_port'
@ -29,7 +30,7 @@ wsrep-on=1
#ist_port=@OPT.port
#sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.2.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
wsrep_node_address='127.0.0.1:@mysqld.2.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.2.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.2.#sst_port'
@ -41,7 +42,7 @@ wsrep-on=1
#ist_port=@OPT.port
#sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.3.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
wsrep_node_address='127.0.0.1:@mysqld.3.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.3.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.3.#sst_port'
@ -53,7 +54,7 @@ wsrep-on=1
#ist_port=@OPT.port
#sst_port=@OPT.port
wsrep_cluster_address='gcomm://127.0.0.1:@mysqld.1.#galera_port'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT15S;gcache.size=10M'
wsrep_provider_options='repl.causal_read_timeout=PT90S;base_port=@mysqld.4.#galera_port;evs.suspect_timeout=PT10S;evs.inactive_timeout=PT30S;evs.install_timeout=PT25S'
wsrep_node_address='127.0.0.1:@mysqld.4.#galera_port'
wsrep_node_incoming_address=127.0.0.1:@mysqld.4.port
wsrep_sst_receive_address='127.0.0.1:@mysqld.4.#sst_port'

View file

@ -6,6 +6,8 @@ connection node_1;
connection node_2;
connection node_3;
connection node_4;
connection node_1;
SET GLOBAL wsrep_provider_options = 'pc.weight=2';
connection node_3;
SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1';
connection node_1;
@ -44,7 +46,8 @@ COUNT(*) = 0
1
CALL mtr.add_suppression("mariadbd: Can't find record in 't1'");
CALL mtr.add_suppression("Slave SQL: Could not execute Delete_rows");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno [0-9]*");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno ");
SET GLOBAL wsrep_provider_options = 'pc.weight=1';
connection node_2;
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'A';
COUNT(*) = 1
@ -54,7 +57,7 @@ COUNT(*) = 0
1
CALL mtr.add_suppression("mariadbd: Can't find record in 't1'");
CALL mtr.add_suppression("Slave SQL: Could not execute Delete_rows");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno [0-9]*");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno ");
connection node_3;
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'A';
COUNT(*) = 1

View file

@ -8,16 +8,30 @@ SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N
VARIABLE_VALUE = 4
1
connection node_1;
CREATE TABLE t1 (f1 INTEGER);
CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=INNODB;
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
connection node_3;
SELECT COUNT(*) AS EXPECT_0 FROM t1;
EXPECT_0
0
INSERT INTO t1 VALUES (1);
SELECT COUNT(*) AS EXPECT_1 FROM t1;
EXPECT_1
1
connection node_2;
SELECT COUNT(*) AS EXPECT_1 FROM t1;
EXPECT_1
1
connection node_1;
SELECT COUNT(*) AS EXPECT_1 FROM t1;
EXPECT_1
1
connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4;
connection node_4;
SELECT COUNT(*) AS EXPECT_1 FROM t1;
EXPECT_1
1
SELECT VARIABLE_VALUE LIKE '%gmcast.segment = 3%' FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'wsrep_provider_options';
VARIABLE_VALUE LIKE '%gmcast.segment = 3%'
1
SELECT COUNT(*) = 1 FROM t1;
COUNT(*) = 1
1
DROP TABLE t1;

View file

@ -2,6 +2,7 @@
[mysqld]
wsrep-ignore-apply-errors=0
loose-galera-vote-rejoin-dml=0
[ENV]
galera_cluster_size=4

View file

@ -5,6 +5,10 @@
--source include/galera_cluster.inc
--source include/big_test.inc
--source include/force_restart.inc
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
--let $node_1=node_1
--let $node_2=node_2
@ -12,6 +16,9 @@
--let $node_4=node_4
--source include/auto_increment_offset_save.inc
--connection node_1
SET GLOBAL wsrep_provider_options = 'pc.weight=2';
# Isolate node #3
--connection node_3
SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1';
@ -30,6 +37,7 @@ INSERT INTO t1 VALUES (1, 'A');
SET SESSION wsrep_on=OFF;
INSERT INTO t1 VALUES (2, 'B');
SET SESSION wsrep_on=ON;
--source include/galera_wait_ready.inc
DELETE FROM t1 WHERE f1 = 2;
# Wait for node #4 to be voted out
@ -75,14 +83,15 @@ SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'A';
SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 'B';
CALL mtr.add_suppression("mariadbd: Can't find record in 't1'");
CALL mtr.add_suppression("Slave SQL: Could not execute Delete_rows");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno [0-9]*");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno ");
SET GLOBAL wsrep_provider_options = 'pc.weight=1';
--connection node_2
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'A';
SELECT COUNT(*) = 0 FROM t1 WHERE f2 = 'B';
CALL mtr.add_suppression("mariadbd: Can't find record in 't1'");
CALL mtr.add_suppression("Slave SQL: Could not execute Delete_rows");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno [0-9]*");
CALL mtr.add_suppression("WSREP: Event 3 Delete_rows_v1 apply failed: 120, seqno ");
--connection node_3
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'A';

View file

@ -1,5 +1,8 @@
!include ../galera_4nodes.cnf
[mysqld]
loose-galera-wan=1
[mysqld.1]
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=10M;gmcast.segment=1'

View file

@ -8,31 +8,35 @@
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/force_restart.inc
CALL mtr.add_suppression("WSREP: Stray state UUID msg:");
CALL mtr.add_suppression("Sending JOIN failed: ");
CALL mtr.add_suppression("WSREP: .* sending install message failed: Socket is not connected");
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");
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--connection node_1
CREATE TABLE t1 (f1 INTEGER);
CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=INNODB;
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connection node_3
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1';
--source include/wait_condition.inc
SELECT COUNT(*) AS EXPECT_0 FROM t1;
INSERT INTO t1 VALUES (1);
SELECT COUNT(*) AS EXPECT_1 FROM t1;
--connection node_2
SELECT COUNT(*) AS EXPECT_1 FROM t1;
--connection node_1
SELECT COUNT(*) AS EXPECT_1 FROM t1;
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4
--connection node_4
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1';
--source include/wait_condition.inc
--let $wait_condition = SELECT COUNT(*) = 1 FROM t1;
--source include/wait_condition.inc
SELECT COUNT(*) AS EXPECT_1 FROM t1;
SELECT VARIABLE_VALUE LIKE '%gmcast.segment = 3%' FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'wsrep_provider_options';
SELECT COUNT(*) = 1 FROM t1;
DROP TABLE t1;

View file

@ -1,5 +1,8 @@
!include ../galera_4nodes.cnf
[mysqld]
loose-galera-wan-restart-ist=1
[mysqld.1]
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.segment=1'

View file

@ -15,6 +15,9 @@
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
--source include/wait_condition.inc
# Save original auto_increment_offset values.
--let $node_1=node_1
--let $node_2=node_2
@ -22,9 +25,6 @@
--let $node_4=node_4
--source include/auto_increment_offset_save.inc
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'
--source include/wait_condition.inc
SELECT VARIABLE_VALUE AS EXPECT_4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--connection node_1

View file

@ -1,5 +1,8 @@
!include ../galera_4nodes.cnf
[mysqld]
loose-galera-wan-restart-sst=1
[mysqld.1]
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gmcast.segment=1'

View file

@ -11,10 +11,14 @@
--source include/big_test.inc
--source include/galera_cluster.inc
--source include/have_innodb.inc
--source include/force_restart.inc
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
--connect node_4, 127.0.0.1, root, , test, $NODE_MYPORT_4
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
# Save original auto_increment_offset values.
--let $node_1=node_1
--let $node_2=node_2
@ -22,8 +26,6 @@
--let $node_4=node_4
--source include/auto_increment_offset_save.inc
--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
SELECT VARIABLE_VALUE AS EXPECT_4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--connection node_1