# ==== Purpose ==== # # Verify that 'UNINSTALL PLUGIN' and 'STOP GROUP_REPLICATION' commands # run well in parallel. # # ==== Implementation ==== # # 1. Configure two servers to be members of a group. # 2. Starts and bootstraps a group on the current server. # 3. UNINSTALL PLUGIN group_replication and stop PLUGIN group_replication # in parallel. # 4. INSTALL PLUGIN group_replication. # 5. Shut down Group Replication. # # ==== References ==== # # Bug #23853388 CRASH WHILE DESTROYING A LOCKED MUTEX ON PARALLEL UNINSTALL AND START GR CMD --source include/force_restart.inc --source include/have_group_replication_plugin.inc --let $rpl_skip_group_replication_start= 1 --source include/group_replication.inc --let $rpl_connection_name= server1 --source include/rpl_connection.inc SET SESSION sql_log_bin= 0; call mtr.add_suppression("Group Replication plugin is not installed."); SET SESSION sql_log_bin= 1; --source include/start_and_bootstrap_group_replication.inc ## Warnings depends upon sequence of execution of ## query "STOP GROUP_REPLICATION" and "UNINSTALL PLUGIN group_replication" --disable_warnings --send UNINSTALL PLUGIN group_replication --let $rpl_connection_name= server_1 --source include/rpl_connection.inc --echo # --echo # STOP GROUP_REPLICATION in parallel. --echo # ## Uninstall will not fail. ## However, STOP GR may fail if UNINSTALL is executed first. --error 0, ER_GROUP_REPLICATION_CONFIGURATION STOP GROUP_REPLICATION; --let $rpl_connection_name= server1 --source include/rpl_connection.inc --reap --enable_warnings SET @@GLOBAL.read_only= 0; --source include/install_group_replication_plugin.inc --source include/group_replication_end.inc