# # 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