1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-05 12:42:17 +03:00
Files
mariadb/mysql-test/extra/rpl_tests/rpl_reset_slave.test
Shivji Kumar Jha d4011a6144 BUG#16580366- MTR TESTS FAILING SPORADICALLY ON PB2 (5.5, 5.6 AND 5.7)
DURING INNODB RECOVERY

Problem:
=======
The connection 'master' is dropped by mysqltest after
rpl_end.inc. At this point, dropping temporary tables
at the connection 'master' are not synced at slave.
So, the temporary tables replicated from master remain
on slave leading to an inconsistent close of the test.
The following test thus complains about the presence of
temporary table(s) left over from the previous test.

Fix:
===
- Put explicit drop commands in replication tests so
  that the temporary tables are dropped at slave as well.
- Added the check for Slave_open_temp_tables in
  mtr_check.sql to warn about the remaining temporary
  table, if any, at the close of a test.
2013-09-27 01:24:16 +05:30

111 lines
3.1 KiB
Plaintext

# 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;
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;
reset slave;
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;
reset slave;
source include/start_slave.inc;
connection master;
create temporary table t1 (a int);
sync_slave_with_master;
source include/stop_slave.inc;
reset slave;
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;
reset slave;
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
reset slave;
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
#
reset slave;
--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;
--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