Bug #37148 Most callers of mysql_bin_log.write ignore the return result
Submitted: 3 Jun 2008 3:21 Modified: 15 Mar 2010 4:40
Reporter: Mark Callaghan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.0.37, 5.0.64, 5.1.26 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any
Tags: binlog, replication, write
Triage: Triaged: D3 (Medium) / R2 (Low) / E3 (Medium)

[3 Jun 2008 3:21] Mark Callaghan
Description:
Most callers of mysql_bin_log.write ignore the return result. It can return an error which may indicate that the binlog event was not written. Ignoring this error means that MySQL may then go a commit the transaction to InnoDB leaving slaves and the master inconsistent.

There are even inconsistencies in the same file. For example, the result is checked in sql_insert for regular inserts but not for insert-select.

How to repeat:
Grep the code for mysql_bin_log\.write
[21 Aug 2008 7:38] Mats Kindahl
Rationale for R3/E3: Adding checks to all the places where they are missing is a low-risk moderate effort, but it is complicated by the fact that refactoring might be necessary to propagate the errors correctly and abort execution in the event of a failure. The refactoring may introduce new bugs and will also increase the amount of work necessary to perform the task.
[21 Aug 2008 14:12] Mark Callaghan
You could start by writing a message to the db error log when there is a problem. This could be done within MYSQL_LOG::write. Today, it calls my_message() or my_error(). Do either of those write anything to the db error log. It is a bad idea to rely on clients to log and report all error messages especially if the client is the SQL slave thread when the slave is also writing a binlog.
[3 Jun 2009 1:06] James Day
Perhaps control the risk here by splitting the work into two different bug reports:

1. Log error and handle the easy code changes.
2. Fix any which require more extensive refactoring.

That should take care of at least a decent proportion of the error cases fairly soon, while potentially leaving the tougher ones for later.

The fix for bug #43929 leaves us knowing that we've failed to log an update to a table into the binary log, so part 1 would communicate "sorry, you now have to reclone all of your slaves and make a new backup because your binlog is no longer reliable" for all cases and presumably fix some of the transactional ones with a rollback if the errors propagate back up the call stack and get handled properly.

Because bug #43929 is D2 it seems that both parts of this bug should also be D2 instead of D3. Data loss potential on the master, actual if binlog recovery is needed before the next backup; actual on the slaves immediately.
[24 Jun 2009 19:29] James Day
Alfranio, it sounds as though there's merit in doing the easy and low risk error message part of the job first, in a different bug report. That'll deliver a lot of benefit to end users.
[8 Jul 2009 13:30] Bugs System
Pushed into 5.1.37 (revid:joro@sun.com-20090708131116-kyz8iotbum8w9yic) (version source revid:alfranio.correia@sun.com-20090618141614-uifzzw8e1quuo5gn) (merge vers: 5.1.36) (pib:11)
[9 Jul 2009 7:36] Bugs System
Pushed into 5.1.37 (revid:joro@sun.com-20090708131116-kyz8iotbum8w9yic) (version source revid:alfranio.correia@sun.com-20090618141614-uifzzw8e1quuo5gn) (merge vers: 5.1.36) (pib:11)
[10 Jul 2009 11:21] Bugs System
Pushed into 5.4.4-alpha (revid:anozdrin@bk-internal.mysql.com-20090710111017-bnh2cau84ug1hvei) (version source revid:alfranio.correia@sun.com-20090618170901-02r8xonuztg8005r) (merge vers: 5.4.4-alpha) (pib:11)
[13 Jul 2009 4:01] 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/78490

2973 He Zhenxing	2009-07-13
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
[12 Aug 2009 22:02] Paul Dubois
Noted in 5.4.2 changelog because next 5.4 version will be 5.4.2 and not 5.4.4.
[14 Aug 2009 22:54] Paul Dubois
Ignore previous comment about 5.4.2.
[20 Aug 2009 9:57] 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/81137

2973 He Zhenxing	2009-08-20
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
[26 Aug 2009 13:46] Bugs System
Pushed into 5.1.37-ndb-7.0.8 (revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[26 Aug 2009 13:46] Bugs System
Pushed into 5.1.37-ndb-6.3.27 (revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (version source revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (merge vers: 5.1.37-ndb-6.3.27) (pib:11)
[26 Aug 2009 13:48] Bugs System
Pushed into 5.1.37-ndb-6.2.19 (revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (version source revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (merge vers: 5.1.37-ndb-6.2.19) (pib:11)
[27 Aug 2009 16:33] Bugs System
Pushed into 5.1.35-ndb-7.1.0 (revid:magnus.blaudd@sun.com-20090827163030-6o3kk6r2oua159hr) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[30 Sep 2009 1:49] 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/85111

2973 He Zhenxing	2009-09-30
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
[30 Oct 2009 9:59] 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/88719

2973 He Zhenxing	2009-10-30
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
     @ sql/events.cc
        check return value of mysql_bin_log.write
     @ sql/ha_ndbcluster_binlog.cc
        Changed ndb_binlog_query to return int instead of void, and return 1 if there is error writing the binlog
     @ sql/log.cc
        check return value of mysql_bin_log.write
     @ sql/log_event.cc
        check return value of mysql_bin_log.write
     @ sql/log_event_old.cc
        check return value of mysql_bin_log.write
     @ sql/mysql_priv.h
        Change write_bin_log to return int instead of void
     @ sql/rpl_injector.cc
        check return value of writing binlog
     @ sql/sp.cc
        check return value of writing binlog
     @ sql/sp_head.cc
        return 1 if writing binlog failed
     @ sql/sql_acl.cc
        check return value of writing binlog
     @ sql/sql_base.cc
        check return value of writing binlog
     @ sql/sql_class.h
        Change binlog_show_create_table to return int
     @ sql/sql_db.cc
        Change write_to_binlog to return int
        check return value of writing binlog
     @ sql/sql_delete.cc
        check return value of writing binlog
     @ sql/sql_insert.cc
        check return value of writing binlog
     @ sql/sql_load.cc
        check return value of writing binlog
     @ sql/sql_parse.cc
        check return value of writing binlog
     @ sql/sql_partition.cc
        check return value of writing binlog
     @ sql/sql_rename.cc
        check return value of writing binlog
     @ sql/sql_repl.cc
        check return value of writing binlog
     @ sql/sql_table.cc
        Change write_bin_log to return int, and return 1 if there was error writing binlog
     @ sql/sql_tablespace.cc
        check return value of writing binlog
     @ sql/sql_trigger.cc
        check return value of writing binlog
     @ sql/sql_udf.cc
        check return value of writing binlog
     @ sql/sql_update.cc
        check return value of writing binlog
     @ sql/sql_view.cc
        check return value of writing binlog
[2 Nov 2009 8: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/88884

2973 He Zhenxing	2009-11-02
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
     @ sql/events.cc
        check return value of mysql_bin_log.write
     @ sql/ha_ndbcluster_binlog.cc
        Changed ndb_binlog_query to return int instead of void, and return 1 if there is error writing the binlog
     @ sql/log.cc
        check return value of mysql_bin_log.write
     @ sql/log_event.cc
        check return value of mysql_bin_log.write
     @ sql/log_event_old.cc
        check return value of mysql_bin_log.write
     @ sql/mysql_priv.h
        Change write_bin_log to return int instead of void
     @ sql/rpl_injector.cc
        check return value of writing binlog
     @ sql/sp.cc
        check return value of writing binlog
     @ sql/sp_head.cc
        return 1 if writing binlog failed
     @ sql/sql_acl.cc
        check return value of writing binlog
     @ sql/sql_base.cc
        check return value of writing binlog
     @ sql/sql_class.h
        Change binlog_show_create_table to return int
     @ sql/sql_db.cc
        Change write_to_binlog to return int
        check return value of writing binlog
     @ sql/sql_delete.cc
        check return value of writing binlog
     @ sql/sql_insert.cc
        check return value of writing binlog
     @ sql/sql_load.cc
        check return value of writing binlog
     @ sql/sql_parse.cc
        check return value of writing binlog
     @ sql/sql_partition.cc
        check return value of writing binlog
     @ sql/sql_rename.cc
        check return value of writing binlog
     @ sql/sql_repl.cc
        check return value of writing binlog
     @ sql/sql_table.cc
        Change write_bin_log to return int, and return 1 if there was error writing binlog
     @ sql/sql_tablespace.cc
        check return value of writing binlog
     @ sql/sql_trigger.cc
        check return value of writing binlog
     @ sql/sql_udf.cc
        check return value of writing binlog
     @ sql/sql_update.cc
        check return value of writing binlog
     @ sql/sql_view.cc
        check return value of writing binlog
[19 Nov 2009 8:37] 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/90923

3201 He Zhenxing	2009-11-19
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
     @ sql/events.cc
        check return value of mysql_bin_log.write
     @ sql/ha_ndbcluster_binlog.cc
        Changed ndb_binlog_query to return int instead of void, and return 1 if there is error writing the binlog
     @ sql/log.cc
        check return value of mysql_bin_log.write
     @ sql/log_event.cc
        check return value of mysql_bin_log.write
     @ sql/log_event_old.cc
        check return value of mysql_bin_log.write
     @ sql/mysql_priv.h
        Change write_bin_log to return int instead of void
     @ sql/rpl_injector.cc
        check return value of writing binlog
     @ sql/sp.cc
        check return value of writing binlog
     @ sql/sp_head.cc
        return 1 if writing binlog failed
     @ sql/sql_acl.cc
        check return value of writing binlog
     @ sql/sql_base.cc
        check return value of writing binlog
     @ sql/sql_class.h
        Change binlog_show_create_table to return int
     @ sql/sql_db.cc
        Change write_to_binlog to return int
        check return value of writing binlog
     @ sql/sql_delete.cc
        check return value of writing binlog
     @ sql/sql_insert.cc
        check return value of writing binlog
     @ sql/sql_load.cc
        check return value of writing binlog
     @ sql/sql_parse.cc
        check return value of writing binlog
     @ sql/sql_partition.cc
        check return value of writing binlog
     @ sql/sql_rename.cc
        check return value of writing binlog
     @ sql/sql_repl.cc
        check return value of writing binlog
     @ sql/sql_table.cc
        Change write_bin_log to return int, and return 1 if there was error writing binlog
     @ sql/sql_tablespace.cc
        check return value of writing binlog
     @ sql/sql_trigger.cc
        check return value of writing binlog
     @ sql/sql_udf.cc
        check return value of writing binlog
     @ sql/sql_update.cc
        check return value of writing binlog
     @ sql/sql_view.cc
        check return value of writing binlog
[19 Nov 2009 9:12] 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/90927

3201 He Zhenxing	2009-11-19
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      This is the non-ndb part of the patch.
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
     @ sql/events.cc
        check return value of mysql_bin_log.write
     @ sql/log.cc
        check return value of mysql_bin_log.write
     @ sql/log_event.cc
        check return value of mysql_bin_log.write
     @ sql/log_event_old.cc
        check return value of mysql_bin_log.write
     @ sql/mysql_priv.h
        Change write_bin_log to return int instead of void
     @ sql/rpl_injector.cc
        check return value of writing binlog
     @ sql/sp.cc
        check return value of writing binlog
     @ sql/sp_head.cc
        return 1 if writing binlog failed
     @ sql/sql_acl.cc
        check return value of writing binlog
     @ sql/sql_base.cc
        check return value of writing binlog
     @ sql/sql_class.h
        Change binlog_show_create_table to return int
     @ sql/sql_db.cc
        Change write_to_binlog to return int
        check return value of writing binlog
     @ sql/sql_delete.cc
        check return value of writing binlog
     @ sql/sql_insert.cc
        check return value of writing binlog
     @ sql/sql_load.cc
        check return value of writing binlog
     @ sql/sql_parse.cc
        check return value of writing binlog
     @ sql/sql_partition.cc
        check return value of writing binlog
     @ sql/sql_rename.cc
        check return value of writing binlog
     @ sql/sql_repl.cc
        check return value of writing binlog
     @ sql/sql_table.cc
        Change write_bin_log to return int, and return 1 if there was error writing binlog
     @ sql/sql_tablespace.cc
        check return value of writing binlog
     @ sql/sql_trigger.cc
        check return value of writing binlog
     @ sql/sql_udf.cc
        check return value of writing binlog
     @ sql/sql_update.cc
        check return value of writing binlog
     @ sql/sql_view.cc
        check return value of writing binlog
[19 Nov 2009 9:13] 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/90928

3038 He Zhenxing	2009-11-19
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      This is the ndb part of the patch.
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ sql/ha_ndbcluster_binlog.cc
        Changed ndb_binlog_query to return int instead of void, and return 1 if there is error writing the binlog
[20 Nov 2009 4:20] 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/91030

3209 He Zhenxing	2009-11-20
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      This is the non-ndb part of the patch.
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
     @ sql/events.cc
        check return value of mysql_bin_log.write
     @ sql/log.cc
        check return value of mysql_bin_log.write
     @ sql/log_event.cc
        check return value of mysql_bin_log.write
     @ sql/log_event_old.cc
        check return value of mysql_bin_log.write
     @ sql/mysql_priv.h
        Change write_bin_log to return int instead of void
     @ sql/rpl_injector.cc
        check return value of writing binlog
     @ sql/sp.cc
        check return value of writing binlog
     @ sql/sp_head.cc
        return 1 if writing binlog failed
     @ sql/sql_acl.cc
        check return value of writing binlog
     @ sql/sql_base.cc
        check return value of writing binlog
     @ sql/sql_class.h
        Change binlog_show_create_table to return int
     @ sql/sql_db.cc
        Change write_to_binlog to return int
        check return value of writing binlog
     @ sql/sql_delete.cc
        check return value of writing binlog
     @ sql/sql_insert.cc
        check return value of writing binlog
     @ sql/sql_load.cc
        check return value of writing binlog
     @ sql/sql_parse.cc
        check return value of writing binlog
     @ sql/sql_partition.cc
        check return value of writing binlog
     @ sql/sql_rename.cc
        check return value of writing binlog
     @ sql/sql_repl.cc
        check return value of writing binlog
     @ sql/sql_table.cc
        Change write_bin_log to return int, and return 1 if there was error writing binlog
     @ sql/sql_tablespace.cc
        check return value of writing binlog
     @ sql/sql_trigger.cc
        check return value of writing binlog
     @ sql/sql_udf.cc
        check return value of writing binlog
     @ sql/sql_update.cc
        check return value of writing binlog
     @ sql/sql_view.cc
        check return value of writing binlog
[21 Nov 2009 4:27] 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/91196

2956 He Zhenxing	2009-11-21
      BUG#37148 Most callers of mysql_bin_log.write ignore the return result
      
      This is the non-ndb part of the patch.
      
      The return value of mysql_bin_log.write was ignored by most callers,
      which may lead to inconsistent on master and slave if the transaction
      was committed while the binlog was not correctly written. If
      my_error() is call in mysql_bin_log.write, this could also lead to
      assertion issue if my_ok() or my_error() is called after.
      
      This fixed the problem by let the caller to check and handle the
      return value of mysql_bin_log.write. This patch only adresses the
      simple cases.
     @ mysql-test/include/binlog_inject_error.inc
        inject binlog write error when doing a query
     @ mysql-test/suite/binlog/t/binlog_write_error.test
        Simple test case to check if proper error is reported when injecting binlog write errors.
     @ sql/events.cc
        check return value of mysql_bin_log.write
     @ sql/log.cc
        check return value of mysql_bin_log.write
     @ sql/log_event.cc
        check return value of mysql_bin_log.write
     @ sql/log_event_old.cc
        check return value of mysql_bin_log.write
     @ sql/mysql_priv.h
        Change write_bin_log to return int instead of void
     @ sql/rpl_injector.cc
        check return value of writing binlog
     @ sql/sp.cc
        check return value of writing binlog
     @ sql/sp_head.cc
        return 1 if writing binlog failed
     @ sql/sql_acl.cc
        check return value of writing binlog
     @ sql/sql_base.cc
        check return value of writing binlog
     @ sql/sql_class.h
        Change binlog_show_create_table to return int
     @ sql/sql_db.cc
        Change write_to_binlog to return int
        check return value of writing binlog
     @ sql/sql_delete.cc
        check return value of writing binlog
     @ sql/sql_insert.cc
        check return value of writing binlog
     @ sql/sql_load.cc
        check return value of writing binlog
     @ sql/sql_parse.cc
        check return value of writing binlog
     @ sql/sql_partition.cc
        check return value of writing binlog
     @ sql/sql_rename.cc
        check return value of writing binlog
     @ sql/sql_repl.cc
        check return value of writing binlog
     @ sql/sql_table.cc
        Change write_bin_log to return int, and return 1 if there was error writing binlog
     @ sql/sql_tablespace.cc
        check return value of writing binlog
     @ sql/sql_trigger.cc
        check return value of writing binlog
     @ sql/sql_udf.cc
        check return value of writing binlog
     @ sql/sql_update.cc
        check return value of writing binlog
     @ sql/sql_view.cc
        check return value of writing binlog
[21 Nov 2009 11:49] 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/91207

2958 He Zhenxing	2009-11-21
      Post fix for previous patch of bug#37148
     @ sql/sql_table.cc
        Add the missing return 0
[11 Dec 2009 6:02] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091211055901-yp18b3c7xuhl87rf) (version source revid:alik@sun.com-20091211055401-43rjwq7gjed6ds83) (merge vers: 6.0.14-alpha) (pib:13)
[11 Dec 2009 6:04] Bugs System
Pushed into 5.6.0-beta (revid:alik@sun.com-20091211055628-ltr7fero363uev7r) (version source revid:alik@sun.com-20091211055453-717czhtezc74u8db) (merge vers: 5.6.0-beta) (pib:13)
[15 Dec 2009 9:50] Jonas Oreland
version for 6.2
http://lists.mysql.com/commits/90928
temp reassign to jonas so that I'll push it there.
/Jonas
[16 Dec 2009 8:16] 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/94379

3038 Konstantin Osipov	2009-12-16 [merge]
      Merge next-mr -> next-4284. Null-merge
      the fix for Bug#37148, since it is null-merged into 6.0.
[16 Dec 2009 10: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/94444

3774 He Zhenxing	2009-12-16
      Fix merge problem with Bug#37148
[17 Dec 2009 9:03] 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/94677

3777 He Zhenxing	2009-12-17
      Fix merge problem with Bug#37148
[21 Dec 2009 15:39] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091221153807-80nxoli1tw1z9bxn) (version source revid:martin.hansson@sun.com-20091217141112-rz4arnp21dehr12a) (merge vers: 6.0.14-alpha) (pib:15)
[5 Jan 2010 8:20] Zhenxing He
change status to PQ as the non-ndb part has already been pushed.
[24 Jan 2010 7:04] 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/97983

3333 He Zhenxing	2010-01-24
      Backport Bug#37148 to 5.1
[4 Feb 2010 10:20] Bugs System
Pushed into 5.1.44 (revid:joro@sun.com-20100204101444-2j32mhqroo0iiio6) (version source revid:dao-gang.qu@sun.com-20100125025505-zqa9v2mgdcfza0v6) (merge vers: 5.1.43) (pib:16)
[4 Feb 2010 14:26] Jon Stephens
Already documented in 5.1.37. Added changelog entries for 5.6.0 and 6.0.14; closed.
[4 Feb 2010 19:59] 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/99342

3076 Konstantin Osipov	2010-02-04
      Merge next-mr -> next-4284.
      Cherry-pick a fix Bug#37148 from next-mr, to preserve
      file ids of the added files, and ensure that all the necessary
      changes have been pulled.
      
      Since initially Bug#37148 was null-merged into 6.0,
      the changeset that is now being cherry-picked was likewise
      null merged into next-4284.
      
      Now that Bug#37148 has been reapplied to 6.0, try to make
      it work with next-4284. This is also necessary to be able
      to pull other changes from 5.1-rep into next-4284.
[4 Feb 2010 20:16] 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/99345

3076 Konstantin Osipov	2010-02-04
      Merge next-mr -> next-4284.
      Cherry-pick a fix Bug#37148 from next-mr, to preserve
      file ids of the added files, and ensure that all the necessary
      changes have been pulled.
      
      Since initially Bug#37148 was null-merged into 6.0,
      the changeset that is now being cherry-picked was likewise
      null merged into next-4284.
      
      Now that Bug#37148 has been reapplied to 6.0, try to make
      it work with next-4284. This is also necessary to be able
      to pull other changes from 5.1-rep into next-4284.
      
      To resolve the merge issues use this changeset applied
      to 6.0:
      revid:jperkin@sun.com-20091216103628-ylhqf7s6yegui2t9
      revno: 3776.1.1
      committer: He Zhenxing <zhenxing.he@sun.com>
      branch nick: 6.0-codebase-bugfixing
      timestamp: Thu 2009-12-17 17:02:50 +0800
      message:
        Fix merge problem with Bug#37148
[5 Feb 2010 9:34] James Day
From the dev side, please say what new bug is opened for the remaining work or whether it'll continue in this one.

James Day, MySQL Senior Support Engineer, Sun Microsystems/Oracle
[5 Feb 2010 11:50] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100204063540-9czpdmpixi3iw2yb) (version source revid:alik@sun.com-20100130211229-l8odades6zijkhqw) (pib:16)
[5 Feb 2010 11:56] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100205113942-oqovjy0eoqbarn7i) (version source revid:alik@sun.com-20100204064210-ljwanqvrjs83s1gq) (merge vers: 6.0.14-alpha) (pib:16)
[5 Feb 2010 12:01] Bugs System
Pushed into 5.5.2-m2 (revid:alik@sun.com-20100203172258-1n5dsotny40yufxw) (version source revid:alik@sun.com-20100130184711-i3xg3xhbymzdqc3f) (merge vers: 5.5.2-m2) (pib:16)
[5 Feb 2010 13:31] Jon Stephens
Fix also noted in the 5.5.2 changelog. Closed.
[7 Feb 2010 22:59] Mark Callaghan
Why was this closed when some callers still ignore the return value? Has a new bug been opened for the non-simple cases?
[8 Feb 2010 9:28] James Day
Mark, just standard Documentation team practice because normally they are the last people to act on a bug report. I'm keeping an eye on this one and making sure it doesn't actually stay closed without a bug being open for the rest of the cases.

James Day, MySQL Senior Support Engineer, Sun Microsystems/Oracle
[16 Feb 2010 16:50] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100216101445-2ofzkh48aq2e0e8o) (version source revid:kostja@sun.com-20100210211106-nq8ztcq2z9o4csit) (merge vers: 6.0.14-alpha) (pib:16)
[16 Feb 2010 16:59] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100216101208-33qkfwdr0tep3pf2) (version source revid:kostja@sun.com-20100204201547-p0mot6yk0kpn93rp) (pib:16)
[16 Feb 2010 19:37] Jon Stephens
I've removed the 5.5.2 changelog entry at Zhenxing's request.

Setting to NDI because I'm not sure whether to expect any more merges or not (although it looks to me like 'not'). If no further merges are forthcoming, then no new changelog entries are required; in this case, please just add a note confirming this, set it back to Documenting, and I'll close.

Thanks!
[21 Feb 2010 8:38] Zhenxing He
Hi Jon,

I think more merges expected for trunk (5.5.3?).
[6 Mar 2010 11:04] Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:vvaintroub@mysql.com-20100216221947-luyhph0txl2c5tc8) (merge vers: 5.5.99-m3) (pib:16)
[8 Mar 2010 18:50] Jon Stephens
Also documented in the 5.5.3 changelog. Closed.
[12 Mar 2010 14:15] Bugs System
Pushed into 5.1.44-ndb-7.0.14 (revid:jonas@mysql.com-20100312135944-t0z8s1da2orvl66x) (version source revid:jonas@mysql.com-20100312115609-woou0te4a6s4ae9y) (merge vers: 5.1.44-ndb-7.0.14) (pib:16)
[12 Mar 2010 14:31] Bugs System
Pushed into 5.1.44-ndb-6.2.19 (revid:jonas@mysql.com-20100312134846-tuqhd9w3tv4xgl3d) (version source revid:jonas@mysql.com-20100312060623-mx6407w2vx76h3by) (merge vers: 5.1.44-ndb-6.2.19) (pib:16)
[12 Mar 2010 14:48] Bugs System
Pushed into 5.1.44-ndb-6.3.33 (revid:jonas@mysql.com-20100312135724-xcw8vw2lu3mijrhn) (version source revid:jonas@mysql.com-20100312103652-snkltsd197l7q2yg) (merge vers: 5.1.44-ndb-6.3.33) (pib:16)
[15 Mar 2010 4:40] Jon Stephens
No new changelog entries required. Closed.
[4 May 2010 18:37] James Day
Zhenxing, is there another bug open for the remaining harder cases? If not, please open one and tell me the number or ask me or someone else to open one.

James Day, MySQL Senior Support Engineer, Oracle
[5 May 2010 1:29] Zhenxing He
The remaining works will be handled by WL#1790.