List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:March 28 2011 3:44pm
Subject:bzr commit into mysql-trunk branch (andrei.elkin:3327) Bug#11763265
View as plain text  
#At file:///home/andrei/MySQL/BZR/2a-23May/FIXES/bug11763265-55956-mysqlbinlog_raw_mode/ based on revid:georgi.kodinov@stripped

 3327 Andrei Elkin	2011-03-28
      bug#11763265 Potential bug with new --raw mode with mysqlbinlog
      
      There are two reported artifacts on possible operations with uninitialazed Log_event* pointer
      inside dump_remote_log_entries().
      In fact, under --raw mode only Load-data events generated by pre 5.0.3 servers is the valid issue.
      That relates to the assignment Load_log_event *le= (Load_log_event*)ev
      where rhs is not initialized when --raw.
      Rotate event is indeed handled correctly.
      
      Fixed with enforcing all events incl LOAD_EVENT, CREATE_FILE_EVENT to be dumped as raw_mode
      is supposed to do without instantiation of the event.
      In case of CREATE_FILE_EVENT another artifact is corrected to pass such event to re-formatting
      to yield an event of the latest binlog-format.
      Notice, in --raw mode mysqlbinlog does not copy the data file of LOAD DATA query that is does
      with just -R option, and that fact is warned.
     @ client/mysqlbinlog.cc
        In case not raw_mode LOAD_EVENT and CREATE_FILE_EVENT require conversion into the current load-data formats. In case of raw_mode all events including the two does not need any extra treatment.

    modified:
      client/mysqlbinlog.cc
=== modified file 'client/mysqlbinlog.cc'
--- a/client/mysqlbinlog.cc	2011-01-18 12:09:03 +0000
+++ b/client/mysqlbinlog.cc	2011-03-28 15:44:54 +0000
@@ -1673,8 +1673,7 @@ static Exit_status dump_remote_log_entri
       */
       ev->register_temp_buf((char *) net->read_pos + 1);
     }
-    if (glob_description_event->binlog_version >= 3 ||
-        (type != LOAD_EVENT && type != CREATE_FILE_EVENT))
+    if (raw_mode || (type != LOAD_EVENT && type != CREATE_FILE_EVENT))
     {
       /*
         If this is a Rotate event, maybe it's the end of the requested binlog;
@@ -1763,6 +1762,14 @@ static Exit_status dump_remote_log_entri
           ev= 0;
         }
       }
+      
+      if (type == LOAD_EVENT || type == CREATE_FILE_EVENT)
+      {
+        DBUG_ASSERT(raw_mode);
+        warning("A remote pre-5.0 binary log that containig LOAD DATA INFILE "
+                "statements is dumped. The loaded file will not be copied from "
+                "the remote server.");
+      }
 
       if (raw_mode)
       {


Attachment: [text/bzr-bundle] bzr/andrei.elkin@oracle.com-20110328154454-w2u4scjgsp0109rr.bundle
Thread
bzr commit into mysql-trunk branch (andrei.elkin:3327) Bug#11763265Andrei Elkin28 Mar