Bug #47096 LOST_EVENTS incident not reported when --binlog-ignore-db is used
Submitted: 3 Sep 2009 10:52 Modified: 20 May 2010 14:55
Reporter: Geert Vanderkelen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Replication Severity:S2 (Serious)
Version:mysql-5.1 OS:Any
Assigned to: Martin Skold CPU Architecture:Any
Tags: binlog, cluster, ndb, replication

[3 Sep 2009 10:52] Geert Vanderkelen
Description:
The LOST_EVENTS incident is not reported in binary logs when mysqld starts if the --binlog-ignore-db option is used.

How to repeat:
Using MySQL Cluster 7.0.7: start mysqld with --binlog-ignore-db=mysql (database is not important).
Stop the mysqld, start it again: and check the binary logs for LOST_EVENTS: not there.

Suggested fix:
LOST_EVENTS should be set no matter what option is set.
[3 Sep 2009 10:54] Geert Vanderkelen
Also verified using MySQL Cluster 7.0bzr latest pull.
[25 Feb 2010 10:23] Bogdan Kecman
Same behavior is with --binlog-do-db also (tested on 7.0.9b and 7.0.10)
[17 Mar 2010 14:22] Martin Skold
=== modified file 'sql/log.cc'
This patch fixes the problem:

--- sql/log.cc  2010-03-12 10:36:52 +0000
+++ sql/log.cc  2010-03-17 13:57:45 +0000
@@ -4278,6 +4278,7 @@ bool MYSQL_BIN_LOG::write(Log_event *eve
     */
     const char *local_db= event_info->get_db();
     if ((thd && !(thd->options & OPTION_BIN_LOG)) ||
+        (local_db) &&
        (!binlog_filter->db_ok(local_db)))
     {
       VOID(pthread_mutex_unlock(&LOCK_log));
[17 Mar 2010 14:47] Martin Skold
Test file

Attachment: rpl_ndb_gap_event.test (application/octet-stream, text), 702 bytes.

[17 Mar 2010 14:48] Martin Skold
Result file

Attachment: rpl_ndb_gap_event.result (application/octet-stream, text), 623 bytes.

[17 Mar 2010 14:56] Martin Skold
Patch file

Attachment: rpl_ndb_gap_event.patch (text/x-diff), 409 bytes.

[24 Mar 2010 16: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/104230

3169 Martin Skold	2010-03-24
      Bug#47096  LOST_EVENTS incident not reported when --binlog-ignore-db is used: Skip filtering on database for Incident_bilog_event
      added:
        mysql-test/suite/rpl_ndb/r/rpl_ndb_gap_event.result
        mysql-test/suite/rpl_ndb/t/rpl_ndb_gap_event-master.opt
        mysql-test/suite/rpl_ndb/t/rpl_ndb_gap_event.test
      modified:
        sql/log.cc
        sql/log_event.h
[24 Mar 2010 16: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/104235

3476 Martin Skold	2010-03-24 [merge]
      Merge
      added:
        mysql-test/suite/rpl_ndb/r/rpl_ndb_gap_event.result
        mysql-test/suite/rpl_ndb/t/rpl_ndb_gap_event-master.opt
        mysql-test/suite/rpl_ndb/t/rpl_ndb_gap_event.test
      modified:
        sql/log.cc
        sql/log_event.h
[24 Mar 2010 16: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/104242

3536 Martin Skold	2010-03-24 [merge]
      Merge
      added:
        mysql-test/suite/rpl_ndb/r/rpl_ndb_gap_event.result
        mysql-test/suite/rpl_ndb/t/rpl_ndb_gap_event-master.opt
        mysql-test/suite/rpl_ndb/t/rpl_ndb_gap_event.test
      modified:
        sql/log.cc
        sql/log_event.h
[20 May 2010 14:55] Jon Stephens
Documented bugfix in the NDB-6.3.33, 7.0.14, and 7.1.3 changelogs as follows:

      When mysqld was started with --binlog-do-db or --binlog-ignore-db, 
      no LOST_EVENTS incident was written to the binary log.

Closed.