1# ==== Purpose ====
2#
3# This test will verify if a slave will skip the transaction boundary parser
4# and the Retrieved_Gtid_Set initialization when relay_log_recovery is set.
5#
6# ==== Related Bugs and Worklogs ====
7#
8# BUG#21798355 SLOW STARTUP OF 5.7.X SLAVE WITH RELAY_LOG_RECOVERY = ON
9#              AND MANY RELAY LOGS
10
11# This test case is binary log format agnostic
12--source include/have_binlog_format_row.inc
13--let $rpl_skip_start_slave=1
14--source include/master-slave.inc
15# Suppress recovery warning messages
16CALL mtr.add_suppression('Recovery from master pos');
17
18# Insert some content on the master
19CREATE TABLE t1 (c1 INT);
20INSERT INTO t1 VALUES (1);
21
22# Rotate the binary log to have events on more than one relay log file
23FLUSH LOCAL BINARY LOGS;
24INSERT INTO t1 VALUES (1);
25DROP TABLE t1;
26
27# Start and sync the I/O thread before restarting the slave
28--source include/rpl_connection_slave.inc
29--source include/start_slave_io.inc
30--source include/rpl_connection_master.inc
31--source include/sync_slave_io_with_master.inc
32
33# Restart the slave enabling relay_log_recovery
34--let $rpl_server_number= 2
35--let $rpl_server_parameters= --relay_log_recovery=ON
36--source include/rpl_restart_server.inc
37
38# File to GREP
39--let $assert_file=$MYSQLTEST_VARDIR/log/mysqld.2.err
40# Show entries only after the last occurrence of the following pattern
41--let $assert_only_after=.* \[Note\] Shutting down slave threads
42# Assert that there is no expected note log line about reading relay log events
43--let $assert_count= 0
44--let $assert_select=.* \[Note\] .* events read in relaylog file .*
45--let $assert_text= Found no lines about reading events on the relay log.
46--source include/assert_grep.inc
47
48# Cleanup
49--source include/rpl_connection_slave.inc
50--source include/start_slave.inc
51
52--source include/rpl_end.inc
53