82 lines
2.1 KiB
Plaintext
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
|