diff options
Diffstat (limited to 'mysql-test/suite/rpl/include/rpl_reset_slave.test')
-rw-r--r-- | mysql-test/suite/rpl/include/rpl_reset_slave.test | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/include/rpl_reset_slave.test b/mysql-test/suite/rpl/include/rpl_reset_slave.test new file mode 100644 index 00000000..d4c9d701 --- /dev/null +++ b/mysql-test/suite/rpl/include/rpl_reset_slave.test @@ -0,0 +1,116 @@ +# TBF - difference in row level logging +# Temp tables are not replicated in rbr, but it is still good to hit rbr with everthing + +# See SHOW SLAVE STATUS displays well after RESET SLAVE (it should display the +# --master-* options from mysqld, as this is what is going to be used next time +# slave threads will be started). In bug 985, it displayed old values (of before +# RESET SLAVE). +# See if slave crashes when doing a CREATE TEMPORARY TABLE twice, separated by +# RESET SLAVE. + +-- source include/master-slave.inc +sync_slave_with_master; +--disable_query_log +set sql_log_bin=0; +call mtr.add_suppression('Slave I/O: Get master BINLOG_CHECKSUM failed with error'); +set sql_log_bin=1; +--enable_query_log +let $status_items= Master_User, Master_Host; +source include/show_slave_status.inc; + +source include/stop_slave.inc; +change master to master_user='test'; +source include/show_slave_status.inc; + +--source include/reset_slave.inc +source include/show_slave_status.inc; + +change master to master_user='root'; +source include/start_slave.inc; +sync_with_master; +source include/show_slave_status.inc; + +# test of crash with temp tables & RESET SLAVE +# (test to see if RESET SLAVE clears temp tables in memory and disk) +source include/stop_slave.inc; +--source include/reset_slave.inc +source include/start_slave.inc; +connection master; +create temporary table t1 (a int); +sync_slave_with_master; +source include/stop_slave.inc; +--source include/reset_slave.inc +source include/start_slave.inc; +sync_with_master; +show status like 'slave_open_temp_tables'; +connection master; +drop temporary table if exists t1; +sync_slave_with_master; + +# +#Bug#34654 RESET SLAVE does not clear LAST_IO_Err* +# + +# clearing the status +source include/stop_slave.inc; +--source include/reset_slave.inc +source include/check_slave_no_error.inc; + +# +# verifying start slave resets Last_IO_Error and Last_IO_Errno. +# + +change master to master_user='impossible_user_name'; +start slave; +let $slave_io_errno= 1045; +--source include/wait_for_slave_io_error.inc +--source include/stop_slave_sql.inc + +change master to master_user='root'; +source include/start_slave.inc; +source include/check_slave_no_error.inc; + +# +# verifying reset slave resets Last_{IO,SQL}_Err{or,no} +# + +stop slave; +change master to master_user='impossible_user_name'; +start slave; +let $slave_io_errno= 1045; +--source include/wait_for_slave_io_error.inc +--source include/stop_slave_sql.inc + +--source include/reset_slave.inc +source include/check_slave_no_error.inc; +change master to master_user='root'; + + +# +# BUG#11809016 - NO WAY TO DISCOVER AN INSTANCE IS NO LONGER A SLAVE FOLLOWING MYSQL BUG#28796 +# + +--source include/reset_slave.inc +--source include/start_slave.inc + +--source include/stop_slave.inc +--let $_slave_master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1) +--let $_slave_master_user= query_get_value(SHOW SLAVE STATUS, Master_User, 1) +--let $_slave_master_port= query_get_value(SHOW SLAVE STATUS, Master_Port, 1) + +reset slave all; +set @@global.gtid_slave_pos= ""; +--error ER_BAD_SLAVE +start slave; + +--let $_show_master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1) +if ($_show_master_host != No such row) +{ + die; +} + +--replace_result $_slave_master_host MASTER_HOST $_slave_master_user MASTER_USER $_slave_master_port MASTER_PORT +--eval CHANGE MASTER TO MASTER_HOST= '$_slave_master_host', MASTER_USER= '$_slave_master_user', MASTER_PORT= $_slave_master_port +--source include/start_slave.inc + +--source include/rpl_end.inc |