polardbxengine/mysql-test/suite/group_replication/t/gr_rejoining_offline_member...

82 lines
2.1 KiB
Plaintext

#
# Test case to verify querying performance_schema.replication_group_members
# table while member is rejoining does not create issue.
#
# Test:
# 0. This test requires only 1 server M1.
# 1. Start group replication on member1.
# 2. Add gr_rejoining_offline_member_proc procedure to query
# replication_group_members multiple times.
# 3. Restart group replication on member1.
# 4. Query performance_schema.replication_group_members table
# multiple times while member is rejoining to test the failure.
# 5. Verify member1 is ONLINE.
# 6. Cleanup
--source include/big_test.inc
--source include/have_group_replication_plugin.inc
--let $rpl_skip_group_replication_start= 1
--source include/group_replication.inc
--echo
--echo # 1. Start group replication on member1.
--source include/start_and_bootstrap_group_replication.inc
--echo
--echo # 2. Add gr_rejoining_offline_member_proc procedure to query
--echo # replication_group_members multiple times and stop GR on server1.
--let $rpl_connection_name= server1
--source include/rpl_connection.inc
delimiter |;
CREATE PROCEDURE test.gr_rejoining_offline_member_proc(mx INT)
BEGIN
SET @x = 0;
REPEAT
SELECT COUNT(*) FROM performance_schema.replication_group_members;
SET @x = @x + 1;
UNTIL @x > mx END REPEAT;
END |
delimiter ;|
--source include/stop_group_replication.inc
--echo
--echo # 3. Restart group replication on member1.
SET GLOBAL group_replication_bootstrap_group=1;
--send START GROUP_REPLICATION
--echo
--echo # 4. Query performance_schema.replication_group_members table
--echo # multiple times while member is rejoining to test the failure.
--let $rpl_connection_name= server_1
--source include/rpl_connection.inc
--disable_result_log
--disable_query_log
call gr_rejoining_offline_member_proc(100);
--enable_query_log
--enable_result_log
--echo
--echo # 5. Verify member1 is ONLINE.
--let $rpl_connection_name= server1
--source include/rpl_connection.inc
--reap
--let $group_replication_member_state= ONLINE
--source include/gr_wait_for_member_state.inc
--echo
--echo # 6. Cleanup
DROP PROCEDURE gr_rejoining_offline_member_proc;
--source include/group_replication_end.inc