2019-03-07 08:12:26 +04:00
|
|
|
--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
|
2020-08-21 19:57:22 +03:00
|
|
|
# --shutdown_server
|
2019-03-07 08:12:26 +04:00
|
|
|
--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;
|
|
|
|
|
|
|
|
--connection server_2
|
2019-03-14 18:48:22 +02:00
|
|
|
--disable_warnings
|
2019-03-07 08:12:26 +04:00
|
|
|
--source include/start_slave.inc
|
2019-03-14 18:48:22 +02:00
|
|
|
--enable_warnings
|
|
|
|
|
2019-03-07 08:12:26 +04:00
|
|
|
--connection server_3
|
2019-03-14 18:48:22 +02:00
|
|
|
--disable_warnings
|
2019-03-07 08:12:26 +04:00
|
|
|
--source include/start_slave.inc
|
2019-03-14 18:48:22 +02:00
|
|
|
--enable_warnings
|
|
|
|
|
2019-03-07 08:12:26 +04:00
|
|
|
--connection server_4
|
2019-03-14 18:48:22 +02:00
|
|
|
--disable_warnings
|
2019-03-07 08:12:26 +04:00
|
|
|
--source include/start_slave.inc
|
2019-03-14 18:48:22 +02:00
|
|
|
--enable_warnings
|