87 lines
3.1 KiB
Plaintext
87 lines
3.1 KiB
Plaintext
################################################################################
|
|
# This test verifies the output of the show slave hosts.
|
|
#
|
|
# Test:
|
|
# 0. The test requires two servers: M1 and M2.
|
|
# 1. Bootstrap start a group on M2. Create table t1.
|
|
# 2. verify that the show slave hosts output is empty.
|
|
# 3. Stop the SQL_THREAD for channel group_replication_applier
|
|
# so that M1 will be in recovering state when it is joined
|
|
# to the group.
|
|
# 4. Start GR on M1. Wait until it is in RECOVERING state.
|
|
# 5. verify that show slave hosts on M2 shows M1.
|
|
# 6. start the SQL_THREAD for channel group_replication_applier
|
|
# 7. Wait until show slave hosts doesn't show server M2 in it's output.
|
|
# 8. Clean up.
|
|
################################################################################
|
|
|
|
--source include/have_group_replication_plugin.inc
|
|
--let $rpl_skip_group_replication_start= 1
|
|
--source include/group_replication.inc
|
|
|
|
--let $rpl_connection_name= server2
|
|
--source include/rpl_connection.inc
|
|
--source include/start_and_bootstrap_group_replication.inc
|
|
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
|
|
|
# Assert that the show slave hosts is empty.
|
|
--let $host_uuid= query_get_value(show slave hosts,Slave_UUID,1)
|
|
--let $assert_text = Assert that show slave hosts is empty..
|
|
--let $assert_cond = "$host_uuid" = "No such row"
|
|
--source include/assert.inc
|
|
|
|
# This is to ensure that M1 will be in recovering state, so that the
|
|
# output of show slave hosts can be verified.
|
|
STOP SLAVE SQL_THREAD FOR CHANNEL 'group_replication_applier';
|
|
|
|
--let $rpl_connection_name= server1
|
|
--source include/rpl_connection.inc
|
|
|
|
# save the value of slave_net_timeout
|
|
SET @restore_slave_net_timeout=@@global.slave_net_timeout;
|
|
|
|
# Set slave_net_timeout to lower value so that the master(M2) detects
|
|
# that the slave host(M1) has gone sooner.
|
|
SET @@global.slave_net_timeout=20;
|
|
--let $server1_uuid= `SELECT @@GLOBAL.SERVER_UUID`
|
|
|
|
# Wait until M1 is in recovering state
|
|
--let $group_replication_start_member_state= RECOVERING
|
|
--source include/start_group_replication.inc
|
|
|
|
# Wait until show slave hosts on M2 shows M1 as it will be
|
|
# connected as slave during recovery
|
|
--let $rpl_connection_name= server2
|
|
--source include/rpl_connection.inc
|
|
|
|
let $wait_timeout= 60;
|
|
let $show_statement= SHOW SLAVE HOSTS;
|
|
let $field= Slave_UUID;
|
|
let $condition= = '$server1_uuid';
|
|
--source include/wait_show_condition.inc
|
|
|
|
START SLAVE SQL_THREAD FOR CHANNEL 'group_replication_applier';
|
|
|
|
# Verify that both the servers are in ONLINE state.
|
|
--let $wait_timeout= 60
|
|
--let $wait_condition= SELECT COUNT(*)=2 FROM performance_schema.replication_group_members WHERE member_state='ONLINE'
|
|
--source include/wait_condition.inc
|
|
|
|
# Wait until server1 is removed from the show slave hosts output.
|
|
let $wait_timeout= 60;
|
|
let $wait_for_all= 1;
|
|
let $show_statement= SHOW SLAVE HOSTS;
|
|
let $field= Host;
|
|
let $condition= = 'No such row';
|
|
--source include/wait_show_condition.inc
|
|
|
|
# Clean up
|
|
--let $rpl_connection_name= server1
|
|
--source include/rpl_connection.inc
|
|
|
|
# Restore the value of slave_net_timeout
|
|
SET @@global.slave_net_timeout=@restore_slave_net_timeout;
|
|
DROP TABLE t1;
|
|
|
|
--source include/group_replication_end.inc
|