Bug #55790 Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
Submitted: 5 Aug 2010 19:45 Modified: 16 Dec 2010 3:30
Reporter: Sven Sandberg Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version:5.1+, 5.6.99 OS:Any
Assigned to: Daogang Qu CPU Architecture:Any
Tags: ER_NET_PACKET_TOO_LARGE, Read_Master_Log_Pos, show slave status
Triage: Triaged: D3 (Medium)

[5 Aug 2010 19:45] Sven Sandberg
Description:
When slave has a smaller value for max_allowed_packet than master and the master generates an event bigger than the slave's limit, the slave IO thread gets the error ER_NET_PACKET_TOO_LARGE ("Got a packet bigger than 'max_allowed_packet' bytes") and the event is not written to the relay log. This is good.

When logging in row format, DML is written as a Table_map_event followed by a Row_event. If the Table_map_event is within the limit but the Row_event is bigger than the limit, so that ER_NET_PACKET_TOO_LARGE happens for the Row_event, then the Table_map_event is not written to the relay log. However, the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is at the end of the Table_map_event. This is clearly wrong.

I don't know what the expected behavior is. There are two possibilities:

 1. The log position is correct and the Table_map_event should be written.

 2. The table map should not be written and the log position is incorrect.

How to repeat:
# Simplified version of rpl_packet.test
--source include/master-slave.inc
--source include/have_binlog_format_row.inc

# Change max packet size on master and slave
--connection master
SET @@global.max_allowed_packet=4096;
SET @@global.net_buffer_length=4096;
--connection slave
SET @@global.max_allowed_packet=1024;
SET @@global.net_buffer_length=1024;

# Restart master connection and slave threads for new settings to take effect.
--source include/stop_slave.inc
--source include/start_slave.inc
--disconnect master
--connect (master, localhost, root)

# Create table.
--connection master
CREATE TABLE t (a TEXT) ENGINE=MyISAM;
--sync_slave_with_master

# Create big row event.
--connection master
INSERT INTO t VALUES (REPEAT('a', 2048));

# Slave IO thread should stop with error when trying to read the big event.
--connection slave
# 1153 = ER_NET_PACKET_TOO_LARGE
--let $slave_io_errno= 1153
--let $show_slave_io_error= 1
--source include/wait_for_slave_io_error.inc

# Now Read_Master_Log_Pos is wrong:
--let $status_items= Read_Master_Log_Pos
--source include/show_slave_status.inc

# Relay log does not contain the event that ends at Read_Master_Log_Pos:
--let $MYSQLD_DATADIR= `SELECT @@datadir`
--echo Last event in relay log:
--let $relay_log_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1)
exec $MYSQL_BINLOG $MYSQLD_DATADIR/$relay_log_file
 | grep 'end_log_pos'
 | tail -n 1;
[5 Aug 2010 19:50] Sven Sandberg
rpl_packet.test can be simplified after this bug has been fixed. After BUG#49978 is pushed, there will be a comment in rpl_packet.test explaining how.
[5 Aug 2010 20:37] Davi Arnaut
> When slave has a smaller value for max_allowed_packet than master and
> the master generates an event bigger than the slave's limit, the slave
> IO thread gets the error ER_NET_PACKET_TOO_LARGE ("Got a packet bigger
> than 'max_allowed_packet' bytes") and the event is not written to the
> relay log. This is good.

Actually, not good. This is extremely confusing for anyone that does not know the internal behavior.
[7 Aug 2010 8:59] Sveta Smirnova
Thank you for the report.

Verified as described.
[3 Sep 2010 9:20] Sven Sandberg
Davi: Since max_allowed_packet limits the resources used by the server, I think the limit has to be respected also by the slave threads. E.g., maybe the DBA set max_allowed_packet to a small value on slave because it is important that slave does not have too big blobs. It may be better that the slave stops than that the limit is silently exceeded.

The error message is shown only if max_allowed_packet is smaller on slave than on master, meaning that DBA has manually changed max_allowed_packet. So I think we should write in the documentation for max_allowed_packet that the value on slave must be greater or equal to the value on master. Is this an acceptable solution to the problem you mention?
[11 Oct 2010 9:02] Daogang Qu
Actually the Table_map_event is written to the relay log, just MYSQLBINLOG
filtered it out as following:

../client/mysqlbinlog var/mysqld.2/data/slave-relay-bin.000004
......
CREATE TABLE t (a TEXT) ENGINE=MyISAM
/*!*/;
# at 358
#101011 16:28:41 server id 1  end_log_pos 277 	Query	thread_id=7	exec_time=0	error_code=0
SET TIMESTAMP=1286785721/*!*/;
BEGIN
/*!*/;
# at 426
# at 467
#101011 16:28:42 server id 2  end_log_pos 486 	Stop
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

hexdump -s 426 var/mysqld.2/data/slave-relay-bin.000004
00001aa bd39 4cb2 0113 0000 2900 0000 3e00 0001
00001ba 0000 2b00 0000 0000 0100 0400 6574 7473
00001ca 0100 0074 fc01 0201 3a01 b2bd 034c 0002
00001da 0000 0013 0000 01e6 0000 0000          
00001e6

The '13' in the '0113' hex indicates that it's a Table_map_log_event.
[11 Oct 2010 13:19] Sven Sandberg
Thanks for your analysis, Daogang! I think this means it is not a bug in the replication slave, but in mysqlbinlog. It should print the Table_map_log_event.
[14 Oct 2010 7:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/120750

3324 Dao-Gang.Qu@sun.com	2010-10-14
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG and
      SHOW RELAYLOG EVENTS. However, the Read_Master_Log_Pos displayed
      by SHOW SLAVE STATUS is at the end of the Table_map_Log_event.
      
      After the patch, the Table_map_log_event will be displayed by
      MYSQLBINLOG and SHOW RELAYLOG EVENTS so long as it is written
      to the relay log, even if its rows events are discarded;
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the the Table_map_log_event will
        be displayed by MYSQLBINLOG and SHOW RELAYLOG EVENTS
        so long as it was written to the relay log, even if
        its rows events are discarded;
     @ sql/log_event.cc
        Added code to sync the Table_map_log_event to file from catch
        directly instead of waiting for its rows event gogether.
[19 Oct 2010 8:10] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/121066

3324 Dao-Gang.Qu@sun.com	2010-10-19
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the Table_map_log_event will be displayed by
      MYSQLBINLOG so long as it was written to the relay log even
      if its rows events are discarded. To multi rows events in one
      statement, the headers of other rows events also will be
      displayed if the last rows event is discarded by slave I/O
      thread. And MYSQLBINLOG will print a warning for the missed
      rows event.
     @ client/mysqlbinlog.cc
        Add code to print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the the Table_map_log_event will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Added code to sync the Table_map_log_event and the header
        of every rows event to file from catch directly instead of
        waiting for all rows events of one statement together.
[20 Oct 2010 7:34] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/121249

3324 Dao-Gang.Qu@sun.com	2010-10-20
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the Table_map_log_event will be displayed by
      MYSQLBINLOG so long as it was written to the relay log even
      if its rows events are discarded. To multi rows events in one
      statement, the headers of other rows events also will be
      displayed if the last rows event is discarded by slave I/O
      thread. And MYSQLBINLOG will print a warning for the missed
      rows event.
     @ client/mysqlbinlog.cc
        Add code to print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the the Table_map_log_event will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Added code to sync the Table_map_log_event and the header
        of every rows event to file from catch directly instead of
        waiting for all rows events of one statement together.
     @ sql/log_event_old.cc
        Added code to sync the header of every rows event to file
        from catch directly instead of waiting for all rows events
        of one statement together.
[22 Oct 2010 8:32] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/121653

3324 Dao-Gang.Qu@sun.com	2010-10-22
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the header of the Table_map_log_event will
      be displayed by MYSQLBINLOG so long as it was written to
      the relay log even if its rows events are discarded. To
      multi rows events in one statement, the headers of other
      rows events also will be displayed if the last rows event
      is discarded by slave I/O thread. And MYSQLBINLOG will print
      a warning for the missed rows event.
     @ client/mysqlbinlog.cc
        Add code to print a warning if the head cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the the Table_map_log_event will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
[27 Oct 2010 6:26] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122004

3324 Dao-Gang.Qu@sun.com	2010-10-27
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the header of the Table_map_log_event will
      be displayed by MYSQLBINLOG so long as it was written to
      the relay log even if its rows events are discarded. To
      multi rows events in one statement, the headers of other
      rows events also will be displayed if the last rows event
      is discarded by slave I/O thread. And MYSQLBINLOG will print
      a warning for the missed rows event.
      Refactoring:
      Mysqlbinlog prints 'at' to head cache. Log_event prints head
      to the head cache and body to the body cache. Mysqlbinlog
      flushes the head and body caches if needed.
     @ client/mysqlbinlog.cc
        Add code to flush the head and body caches if needed,
        and print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the header Table_map_log_even will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Updated code to get rid of Write_on_release_cache and
        do not flush the head and body cache here.
     @ sql/log_event_old.cc
        Remove code for not flushing the head and body cache here.
[28 Oct 2010 10:09] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122187

3341 Dao-Gang.Qu@sun.com	2010-10-28
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the header of the Table_map_log_event will
      be displayed by MYSQLBINLOG so long as it was written to
      the relay log even if its rows events are discarded. To
      multi rows events in one statement, the headers of other
      rows events also will be displayed if the last rows event
      is discarded by slave I/O thread. And MYSQLBINLOG will print
      a warning for the missed rows event.
      Refactoring:
      Mysqlbinlog prints 'at' to head cache. Log_event prints head
      to the head cache and body to the body cache. Mysqlbinlog
      flushes the head and body caches if needed.
     @ client/mysqlbinlog.cc
        Add code to flush the head and body caches if needed,
        and print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the header Table_map_log_even will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Updated code to get rid of Write_on_release_cache and
        do not flush the head and body cache here.
     @ sql/log_event_old.cc
        Remove code for not flushing the head and body cache here.
[29 Oct 2010 5:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122260

3341 Dao-Gang.Qu@sun.com	2010-10-29
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the header of the Table_map_log_event will
      be displayed by MYSQLBINLOG so long as it was written to
      the relay log even if its rows events are discarded. To
      multi rows events in one statement, the headers of other
      rows events also will be displayed if the last rows event
      is discarded by slave I/O thread. And MYSQLBINLOG will print
      a warning for the missed rows event.
      Refactoring:
      Mysqlbinlog prints 'at' to head cache. Log_event prints head
      to the head cache and body to the body cache. Mysqlbinlog
      flushes the head and body caches if needed.
     @ client/mysqlbinlog.cc
        Add code to flush the head and body caches if needed,
        and print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the header Table_map_log_even will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Updated code to get rid of Write_on_release_cache and
        do not flush the head and body cache here.
     @ sql/log_event_old.cc
        Remove code for not flushing the head and body cache here.
[29 Oct 2010 7:54] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122270

3341 Dao-Gang.Qu@sun.com	2010-10-29
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the header of the Table_map_log_event will
      be displayed by MYSQLBINLOG so long as it was written to
      the relay log even if its rows events are discarded. To
      multi rows events in one statement, the headers of other
      rows events also will be displayed if the last rows event
      is discarded by slave I/O thread. And MYSQLBINLOG will print
      a warning for the missed rows event.
      Refactoring:
      Mysqlbinlog prints 'at' to head cache. Log_event prints head
      to the head cache and body to the body cache. Mysqlbinlog
      flushes the head and body caches if needed.
     @ client/mysqlbinlog.cc
        Add code to flush the head and body caches if needed,
        and print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the header Table_map_log_even will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Updated code to get rid of Write_on_release_cache and
        do not flush the head and body cache here.
     @ sql/log_event_old.cc
        Remove code for not flushing the head and body cache here.
[1 Nov 2010 5:44] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122391

3349 Dao-Gang.Qu@sun.com	2010-11-01
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      When logging in row format, DML is written as a Table_map_event
      followed by its row events. The Table_map_event is written to
      the relay log by slave I/O thread even if its rows events are
      discarded. But it is not displayed by MYSQLBINLOG. However,
      the Read_Master_Log_Pos displayed by SHOW SLAVE STATUS is
      at the end of the Table_map_Log_event.
      
      After the patch, the header of the Table_map_log_event will
      be displayed by MYSQLBINLOG so long as it was written to
      the relay log even if its rows events are discarded. To
      multi rows events in one statement, the headers of other
      rows events also will be displayed if the last rows event
      is discarded by slave I/O thread. And MYSQLBINLOG will print
      a warning for the missed rows event.
      Refactoring:
      Mysqlbinlog prints 'at' to head cache. Log_event prints head
      to the head cache and body to the body cache. Mysqlbinlog
      flushes the head and body caches if needed.
     @ client/mysqlbinlog.cc
        Add code to flush the head and body caches if needed,
        and print a warning if the body cache is nonempty
        after a binlog has been processed.
     @ mysql-test/suite/binlog/r/binlog_base64_flag.result
        Test result for Bug #55790
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Updated for the patch of Bug #55790
     @ mysql-test/suite/rpl/r/rpl_row_ignorable_event.result
        Updated for the patch of Bug #55790
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Added test to verify if the header Table_map_log_even will
        be displayed by MYSQLBINLOG so long as it was written to
        the relay log, even if its rows events are discarded. And
        MYSQLBINLOG will print a warning for the missed rows event.
     @ sql/log_event.cc
        Updated code to get rid of Write_on_release_cache and
        do not flush the head and body cache here.
     @ sql/log_event_old.cc
        Remove code for not flushing the head and body cache here.
[1 Nov 2010 5:51] Daogang Qu
Pushed into mysql-next-mr-bugfixing.
[4 Nov 2010 9:21] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122801

3358 Tor Didriksen	2010-11-04
      Bug #55790 Read_Master_Log_Pos is wrong 
      Post-push fix: use portable argument to tail.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        tail -n is not supported on solaris.
[4 Nov 2010 10:23] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/122817

3359 Tor Didriksen	2010-11-04
      Bug #55790 Read_Master_Log_Pos is wrong
      
      Post-push fix: disable on windows, since it always fails.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        We do not have grep/tail on windows.
[4 Nov 2010 10:24] Tor Didriksen
The added tests do not work on windows, see
Bug #57967 rpl.rpl_packet test broken on windows, no tail or grep
[8 Nov 2010 3:01] Daogang Qu
Bug #57967 is fixed in the post fix patch.
[9 Nov 2010 4:30] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/123164

3371 Dao-Gang.Qu@sun.com	2010-11-09
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      Post fix.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Updated for bug#55790
[9 Nov 2010 12:02] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/123230

3375 Tor Didriksen	2010-11-09
      Bug #55790    Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      Post fix: LOAD_FILE silently fails when running in parallel because of is_secure_file_path()
     @ mysql-test/suite/rpl/r/rpl_packet.result
        Use MYSQLTEST_VARDIR rather than MYSQLD_TMPDIR.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Use MYSQLTEST_VARDIR rather than MYSQLD_TMPDIR.
[13 Nov 2010 16:25] Bugs System
Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (merge vers: 5.6.99-m5) (pib:21)
[13 Nov 2010 16:35] Bugs System
Pushed into mysql-next-mr (revid:alexander.nozdrin@oracle.com-20101113160336-atmtmfb3mzm4pz4i) (version source revid:alexander.nozdrin@oracle.com-20101113152540-gxro4g0v29l27f5x) (pib:21)
[16 Nov 2010 2:48] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/123972

3384 Dao-Gang.Qu@sun.com	2010-11-16
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      Refactor: Don't check Format_description_log_event for Table_map_event
      and Rows_query_log_event. Because they do not need format_description_log_event
      if no rows event followed, so it's enough just to check the
      Format_description_log_event for rows event.
     @ client/mysqlbinlog.cc
        Added code to not check Format_description_log_event for Table_map_event
        and Rows_query_log_event.
     @ mysql-test/suite/binlog/r/binlog_base64_flag.result
        Updated for the patch of bug#55790.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Updated for the patch of bug#55790.
[18 Nov 2010 4:39] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/124215

3349 Dao-Gang.Qu@sun.com	2010-11-18
      Bug #55790  	Read_Master_Log_Pos is wrong after Slave_IO_Error= ER_NET_PACKET_TOO_LARGE
      
      Refactor: Don't check Format_description_log_event for Table_map_event
      and Rows_query_log_event. Because they do not need format_description_log_event
      if no rows event followed, so it's enough just to check the
      Format_description_log_event for rows event.
     @ client/mysqlbinlog.cc
        Added code to not check Format_description_log_event for Table_map_event
        and Rows_query_log_event.
     @ mysql-test/suite/binlog/r/binlog_base64_flag.result
        Updated for the patch of bug#55790.
     @ mysql-test/suite/rpl/t/rpl_packet.test
        Updated for the patch of bug#55790.
[18 Nov 2010 4:47] Daogang Qu
The above refactoring patch is pushed into mysql-trunk-bugfixing.
[5 Dec 2010 12:41] Bugs System
Pushed into mysql-trunk 5.6.1 (revid:alexander.nozdrin@oracle.com-20101205122447-6x94l4fmslpbttxj) (version source revid:alexander.nozdrin@oracle.com-20101205122447-6x94l4fmslpbttxj) (merge vers: 5.6.1) (pib:23)
[13 Dec 2010 23:40] Jon Stephens
No 5.6 changelog entry is needed for this bug, and it doesn't appear that the fix will go into 5.1.

However, I cannot determine whether the fix will go into 5.5. (Personally, I think it should go into 5.5 and possibly 5.1, but I don't make these decisions.)

Please advise. Thanks!
[15 Dec 2010 15:59] Sven Sandberg
Jon, the patch has only been pushed to trunk, not to 5.5.
[16 Dec 2010 3:30] Jon Stephens
Closed without further action per Sven's comment above.