2
3
# Check replication protocol packet size handling
5
# ==== Related bugs ====
3
6
# Bug#19402 SQL close to the size of the max_allowed_packet fails on slave
7
# BUG#23755: Replicated event larger that max_allowed_packet infinitely re-transmits
8
# BUG#42914: No LAST_IO_ERROR for max_allowed_packet errors
9
# BUG#55322: SHOW BINLOG EVENTS increases @@SESSION.MAX_ALLOWED_PACKET
6
11
# max-out size db name
7
12
source include/master-slave.inc;
21
26
SET @@global.max_allowed_packet=1024;
22
27
SET @@global.net_buffer_length=1024;
29
sync_slave_with_master;
24
30
# Restart slave for setting to take effect
26
31
source include/stop_slave.inc;
27
32
source include/start_slave.inc;
38
43
create table `t1` (`f1` LONGTEXT) ENGINE=MyISAM;
40
45
INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1023');
47
sync_slave_with_master;
45
48
eval select count(*) from `$db`.`t1` /* must be 1 */;
47
50
SHOW STATUS LIKE 'Slave_running';
48
51
select * from information_schema.session_status where variable_name= 'SLAVE_RUNNING';
50
53
eval drop database $db;
55
sync_slave_with_master;
57
58
# Bug #23755: Replicated event larger that max_allowed_packet infinitely re-transmits
85
86
INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2048');
87
# The slave I/O thread must stop after trying to read the above event
89
--source include/wait_for_slave_io_to_stop.inc
90
let $slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1);
91
--echo Slave_IO_Running = $slave_io_running (expect No)
93
90
# Bug#42914: The slave I/O thread must stop after trying to read the above
94
91
# event, However there is no Last_IO_Error report.
96
let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
97
eval SELECT "$last_io_error" AS Last_IO_Error;
94
# The slave I/O thread must stop after trying to read the above event
96
# 1153 = ER_NET_PACKET_TOO_LARGE
97
--let $slave_io_errno= 1153
98
--let $show_slave_io_error= 1
99
--source include/wait_for_slave_io_error.inc
101
# TODO: this is needed because of BUG#55790. Remove once that is fixed.
102
--source include/stop_slave_sql.inc
100
105
# Bug#42914: On the master, if a binary log event is larger than
102
107
# is sent to a slave when it requests a dump from the master, thus leading the
103
108
# I/O thread to stop. However, there is no Last_IO_Error reported.
105
source include/master-slave-reset.inc;
111
--let $rpl_only_running_threads= 1
112
--source include/rpl_reset.inc
115
--sync_slave_with_master
106
118
connection master;
107
119
CREATE TABLE t1 (f1 int PRIMARY KEY, f2 LONGTEXT, f3 LONGTEXT) ENGINE=MyISAM;
108
120
sync_slave_with_master;
113
125
connection slave;
114
126
# The slave I/O thread must stop after receiving
115
# ER_MASTER_FATAL_ERROR_READING_BINLOG error message from master.
116
--source include/wait_for_slave_io_to_stop.inc
117
let $slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1);
118
--echo Slave_IO_Running = $slave_io_running (expect No)
119
let $last_io_error= query_get_value(SHOW SLAVE STATUS, Last_IO_Error, 1);
120
eval SELECT "$last_io_error" AS Last_IO_Error;
127
# 1236=ER_MASTER_FATAL_ERROR_READING_BINLOG error message from master.
128
--let $slave_io_errno= 1236
129
--let $show_slave_io_error= 1
130
--source include/wait_for_slave_io_error.inc
132
# Remove the bad binlog and clear error status on slave.
140
# BUG#55322: SHOW BINLOG EVENTS increases @@SESSION.MAX_ALLOWED_PACKET
142
# In BUG#55322, @@session.max_allowed_packet increased each time SHOW
143
# BINLOG EVENTS was issued. To verify that this bug is fixed, we
144
# execute SHOW BINLOG EVENTS twice and check that max_allowed_packet
145
# never changes. We turn off the result log because we don't care
146
# about the contents of the binlog.
149
SET @max_allowed_packet_0= @@session.max_allowed_packet;
151
SET @max_allowed_packet_1= @@session.max_allowed_packet;
153
SET @max_allowed_packet_2= @@session.max_allowed_packet;
155
if (`SELECT NOT(@max_allowed_packet_0 = @max_allowed_packet_1 AND @max_allowed_packet_1 = @max_allowed_packet_2)`)
157
--echo ERROR: max_allowed_packet changed after executing SHOW BINLOG EVENTS
158
--source include/show_rpl_debug_info.inc
159
SELECT @max_allowed_packet_0, @max_allowed_packet_1, @max_allowed_packet_2;
160
--die @max_allowed_packet changed after executing SHOW BINLOG EVENTS
122
164
--echo ==== clean up ====
123
165
connection master;