--source include/have_binlog_format_statement.inc
--source include/master-slave.inc

--source include/rpl_connection_slave.inc
#
# Testing how well MSR handles initialization failures.
# Specifically it's proved that a failure to initialize mi in one of
# the channels allows RESET SLAVE, no crash happens.
#

# The default channel and channel 'ch_a' will connect to the same master
CALL mtr.add_suppression("A slave with the same server_uuid/server_id as this slave has connected to the master");
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.*");
CALL mtr.add_suppression("Recovery from master pos.* and file");

--source include/stop_slave.inc

SET @@global.master_info_repository="TABLE";
SET @@global.relay_log_info_repository="TABLE";
--replace_result $MASTER_MYPORT MASTER_PORT
eval CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='root', MASTER_PORT=$MASTER_MYPORT FOR CHANNEL 'ch_a';
CHANGE MASTER TO MASTER_HOST='dummy_host', MASTER_USER='root', MASTER_PORT=13010 FOR CHANNEL 'ch_b';
START SLAVE;

STOP SLAVE FOR CHANNEL 'ch_a';

# --relay-log-recovery is a source of the following mi initialization failure
--let $rpl_server_number= 2
--let $rpl_server_parameters= --relay-log-recovery --skip-slave-start --master-info-repository=TABLE --relay-log-info-repository=TABLE
--source include/rpl_restart_server.inc

--source include/rpl_connection_slave.inc
RESET SLAVE ALL;
