MINI MINI MANI MO
--source include/have_binlog_format_mixed.inc
--source include/master-slave.inc
--let $save_mi_repo_type=`SELECT @@GLOBAL.master_info_repository`
--let $save_rli_repo_type=`SELECT @@GLOBAL.relay_log_info_repository`
--let $save_slave_parallel_workers=`SELECT @@global.slave_parallel_workers`
#
# BUG#20236305: MSR: CRASH ON 'START/STOP SLAVE' CMD I.E. ER1794 -> ER1201 -> CRASH
#
# Tests that default channel is created even if creation of
# other channels fails in multisource replication.
# Test that default channel is always created to preserve
# backward compatibility.
--source include/rpl_connection_slave.inc
CALL mtr.add_suppression("Got fatal error .* from master .* slave with the same server_uuid/server_id");
CALL mtr.add_suppression("Error during --relay-log-recovery.*");
CALL mtr.add_suppression("Server was not able to find a rotate event from master server.*");
--source include/stop_slave.inc
# On the slave
RESET SLAVE ALL;
SET GLOBAL master_info_repository='TABLE';
SET GLOBAL relay_log_info_repository='TABLE';
# create a new channel
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT FOR CHANNEL 'ch1'
--enable_warnings
--echo #
--echo # RESTART SLAVE SERVER
--echo #
--let $rpl_server_number= 2
--let $rpl_server_parameters= --relay-log-recovery --skip-slave-start --master-info-repository=TABLE --relay-log-info-repository=TABLE --slave-parallel-workers=4 --relay-log-purge=0
--source include/rpl_restart_server.inc
# This command earlier failed with error ER_MASTER_INFO and the server would
# crash when start slave was issued in the later stages.
#
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT FOR CHANNEL 'ch1'
--enable_warnings
--source include/start_slave.inc
# Stop the slave to execute RESET SLAVE ALL in next step.
--source include/stop_slave.inc
# Lets clear the offending channel and recreate it.
RESET SLAVE ALL FOR CHANNEL 'ch1';
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT FOR CHANNEL 'ch1'
--enable_warnings
# Lets configure the default channel as well.
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT FOR CHANNEL ''
--enable_warnings
# Lets start the slave (and as such, assert that the
# START SLAVE command is not failing any more).
#
# (There are two channels connected to the same server
# though, which may render the slave unable to connect,
# thence not using --source include/start_slave.inc )
START SLAVE;
# clean up
--let $slave_io_errno= convert_error(ER_MASTER_FATAL_ERROR_READING_BINLOG)
--source include/stop_slave.inc
RESET SLAVE ALL;
--replace_result $save_mi_repo_type SAVE_MI_REPO_TYPE
--eval SET @@global.master_info_repository='$save_mi_repo_type'
--replace_result $save_rli_repo_type SAVE_RLI_REPO_TYPE
--eval SET @@global.relay_log_info_repository='$save_rli_repo_type'
--replace_result $save_slave_parallel_workers SAVE_PARALLEL_WORKERS
--eval SET @@global.slave_parallel_workers=$save_slave_parallel_workers
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT
--enable_warnings
--source include/start_slave.inc
--let $rpl_server_number= 2
--let $rpl_server_parameters=
--source include/rpl_restart_server.inc
--source include/rpl_connection_master.inc
#
# BUG#20191813: MSR + MTS: IF WE HAVE ANY INACTIVE CHANNEL, POST RESTART START SLAVE HITS ER1794
#
#
# Added test case of BUG#20191813 for sanity check
#
# Test validates that even if the default IO channel
# is not initialized, the existing channel will be
# able to start and not throw an error.
#
--source include/rpl_connection_slave.inc
call mtr.add_suppression("Slave: Failed to initialize the master info structure for channel");
call mtr.add_suppression("The slave coordinator and worker threads are stopped");
call mtr.add_suppression("Recovery from master pos");
call mtr.add_suppression("It is not possible to change the type of the relay log repository because there are workers repositories with possible");
--source include/stop_slave.inc
RESET SLAVE ALL;
SET @@global.master_info_repository="TABLE";
SET @@global.relay_log_info_repository="TABLE";
SET @@global.slave_parallel_workers=5;
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT FOR CHANNEL 'ch_trunk'
--enable_warnings
# make sure that the IO thread related part for the
# existing channel is indeed started (on slow systems
# START SLAVE is asynchronous and thus the server
# could shutdown without having the structures initialized).
--source include/start_slave.inc
--echo === RESTART SLAVE SERVER ===
--let $rpl_server_number= 2
--let $rpl_server_parameters= --relay-log-recovery --skip-slave-start --master-info-repository=TABLE --relay-log-info-repository=TABLE --slave-parallel-workers=5
--source include/rpl_restart_server.inc
--source include/rpl_connection_slave.inc
START SLAVE;
# clean up
--source include/stop_slave.inc
RESET SLAVE ALL;
--replace_result $save_mi_repo_type SAVE_MI_REPO_TYPE
--eval SET @@global.master_info_repository='$save_mi_repo_type'
--replace_result $save_rli_repo_type SAVE_RLI_REPO_TYPE
--eval SET @@global.relay_log_info_repository='$save_rli_repo_type'
--replace_result $save_slave_parallel_workers SAVE_PARALLEL_WORKERS
--eval SET @@global.slave_parallel_workers=$save_slave_parallel_workers
--disable_warnings
--replace_result $MASTER_MYPORT MASTER_MYPORT
--eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT
--enable_warnings
--source include/start_slave.inc
--let $rpl_server_number= 2
--let $rpl_server_parameters=
--source include/rpl_restart_server.inc
--source include/start_slave.inc
--source include/rpl_connection_master.inc
--source include/rpl_end.inc
OHA YOOOO