Description:
Problem
- Session max_allowed_packet can be bigger than global
max_allowed_packet. When this happens, large events can be stored
in binlog by master, but master can not read them.
Current documentation
* `max_allowed_packet'
The maximum size of one packet or any generated/intermediate
string.
The packet message buffer is initialized to `net_buffer_length'
bytes, but can grow up to `max_allowed_packet' bytes when needed.
This value by default is small, to catch large (possibly
incorrect) packets.
You must increase this value if you are using large `BLOB' columns
or long strings. It should be as big as the biggest `BLOB' you want
to use. The protocol limit for `max_allowed_packet' is 1GB.
Also see BUG#15937.
How to repeat:
Set local connection thread's max_allowed_packet to > global max_allowed_packet.
Suggested fix:
Suggested solution
- Let dump thread use the maximum value (1GB).
- Let the slave always use 1 GB for slave connection.
- Let clients connections on master use local max_allowed_packet up to
1GB minus the size of the biggest replication header possible.