mirror of
https://github.com/MariaDB/server.git
synced 2025-02-09 23:24:11 +01:00
0258ad545a
Fix wrong change to rpl.rpl_shutdown_wait_slaves. After shutting down the master, slaves may or may not succeed in reconnecting depending on the timing on their reconnect relative to master restart. So don't assume all IO threads will be running, just restart any slave that needs it. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
96 lines
2 KiB
PHP
96 lines
2 KiB
PHP
--connection server_1
|
|
|
|
CREATE TABLE t1 (a INT) ENGINE=innodb;
|
|
|
|
--save_master_pos
|
|
|
|
--connection server_2
|
|
--sync_with_master
|
|
|
|
--connection server_3
|
|
--sync_with_master
|
|
|
|
--connection server_4
|
|
--source include/stop_slave.inc
|
|
|
|
--connection server_1
|
|
--disable_query_log
|
|
--let $count=1000
|
|
while ($count)
|
|
{
|
|
INSERT INTO t1 SET a=1;
|
|
--dec $count
|
|
}
|
|
--enable_query_log
|
|
--save_master_pos
|
|
|
|
# Shutdown master and restart server_4 who will be waiting for the master
|
|
# to start replication at its shutdown beginning phase.
|
|
# The being forked out server_4 dump thread must relate to a record
|
|
# in slave_list, and it won't start sending out binlog events
|
|
# until has received a signal from the shutdown thread.
|
|
# This also proves delivery to a started-in-middle-of-shutdown slave.
|
|
--connection server_1
|
|
SET @@GLOBAL.debug_dbug="+d,simulate_delay_at_shutdown";
|
|
|
|
--connection server_4
|
|
--source include/start_slave.inc
|
|
|
|
--connection server_1
|
|
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
wait
|
|
EOF
|
|
# --shutdown_server
|
|
--send SHUTDOWN WAIT FOR ALL SLAVES
|
|
--reap
|
|
--source include/wait_until_disconnected.inc
|
|
#
|
|
# MDEV-18450 liveness condition:
|
|
# Despite shutdown even "late" slave #4 is in sync
|
|
#
|
|
--connection server_4
|
|
--sync_with_master
|
|
|
|
--connection server_3
|
|
--sync_with_master
|
|
|
|
--connection server_2
|
|
--sync_with_master
|
|
|
|
--connection server_1
|
|
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
restart
|
|
EOF
|
|
|
|
--connection default
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
--connection server_1
|
|
--enable_reconnect
|
|
--source include/wait_until_connected_again.inc
|
|
|
|
#
|
|
# Cleanup
|
|
#
|
|
--connection server_1
|
|
DROP TABLE t1;
|
|
|
|
# Slaves IO thread will receive the disconnect error when master was shutdown
|
|
# so we are allowing error on start.
|
|
--connection server_2
|
|
--disable_warnings
|
|
--let rpl_allow_error=1
|
|
--source include/start_slave.inc
|
|
--enable_warnings
|
|
|
|
--connection server_3
|
|
--disable_warnings
|
|
--let rpl_allow_error=1
|
|
--source include/start_slave.inc
|
|
--enable_warnings
|
|
|
|
--connection server_4
|
|
--disable_warnings
|
|
--let rpl_allow_error=1
|
|
--source include/start_slave.inc
|
|
--enable_warnings
|