1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
--source include/galera_cluster.inc
--source include/have_innodb.inc
# Check that `wsrep_allowlist` variable is loaded
SELECT COUNT(*) = 3 FROM mysql.wsrep_allowlist;
--connection node_2
# Check that non-bootstrap nodes doesn't populate `mysql.wsrep_allowlist`
SELECT COUNT(*) = 3 FROM mysql.wsrep_allowlist;
--let $galera_connection_name = node_3
--let $galera_server_number = 3
--source include/galera_connect.inc
# 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_3
# Desync and disconnect node 3 from the PC:
SET @@global.wsrep_desync = 1;
SET SESSION wsrep_sync_wait = 0;
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=1';
--connection node_1
# Wait until node 3 disappears from the PC:
--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
# Delete node ip (127.0.0.3) from allowlist
DELETE FROM mysql.wsrep_allowlist WHERE ip LIKE '127.0.0.3';
SELECT COUNT(*) = 2 FROM mysql.wsrep_allowlist;
--connection node_2
SELECT COUNT(*) = 2 FROM mysql.wsrep_allowlist;
--connection node_3
# Reconnect node 2 to the PC:
SET GLOBAL wsrep_provider_options = 'gmcast.isolate=0';
# We should reach Primary with cluster size = 1 because of `pc.ignore_quorum=TRUE and pc.wait_prim=FALSE` used in configuration
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
# Resync should pass:
SET @@global.wsrep_desync = 0;
# Shutdown node
--source include/shutdown_mysqld.inc
--connection node_1
# Allow node 3 could be reconnected to cluster
INSERT INTO mysql.wsrep_allowlist(ip) VALUES ('127.0.0.3');
--connection node_3
--source include/start_mysqld.inc
--source include/wait_until_connected_again.inc
--connection node_1
--let $wait_condition = SELECT VARIABLE_VALUE = 3 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size';
--source include/wait_condition.inc
CALL mtr.add_suppression('WSREP: Connection not allowed');
--connection node_2
CALL mtr.add_suppression('WSREP: Connection not allowed');
--connection node_3
CALL mtr.add_suppression('WSREP: Ignoring lack of quorum');
# Restore original auto_increment_offset values.
--source ../galera/include/auto_increment_offset_restore.inc
|