summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/rpl/include/rpl_reset_slave.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/rpl/include/rpl_reset_slave.test')
-rw-r--r--mysql-test/suite/rpl/include/rpl_reset_slave.test116
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