List:Commits« Previous MessageNext Message »
From:Sven Sandberg Date:January 29 2008 2:47pm
Subject:bk commit into 5.1 tree (sven:1.2678) BUG#32434
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of sven. When sven does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2008-01-29 14:47:26+01:00, sven@riska.(none) +1 -0
  BUG#32434: Replication doesn't work between 5.2.1-a_drop6p9-log and
5.1.22-ndb-6.3.6-telco
  Problem: When slave reads format_description_log_event, it checks if the
  master is a version that uses an old binlog format. See also BUG#27779.
  Not all possible server_versions were listed.
  Fix: Check for all server_versions which use the old binlog_format.

  sql/log_event.cc@stripped, 2008-01-29 14:47:25+01:00, sven@riska.(none) +55 -10
    In the place where we check if server_version indicates that master is
    the alcatel branch, we now check all currently possible alcatel versions,
    not just a subset. Added comment to explain which clones are affected.

diff -Nrup a/sql/log_event.cc b/sql/log_event.cc
--- a/sql/log_event.cc	2008-01-14 16:48:02 +01:00
+++ b/sql/log_event.cc	2008-01-29 14:47:25 +01:00
@@ -2944,18 +2944,63 @@ Format_description_log_event(const char*
     If post_header_len is null, it means malloc failed, and is_valid
     will fail, so there is no need to do anything.
 
-    The trees which have wrong event id's are:
-    mysql-5.1-wl2325-5.0-drop6p13-alpha, mysql-5.1-wl2325-5.0-drop6,
-    mysql-5.1-wl2325-5.0, mysql-5.1-wl2325-no-dd (`grep -C2
-    BEGIN_LOAD_QUERY_EVENT /home/bk/ * /sql/log_event.h`). The
-    corresponding version (`grep mysql, configure.in` in those trees)
-    strings are 5.2.2-a_drop6p13-alpha, 5.2.2-a_drop6p13c,
-    5.1.5-a_drop5p20, 5.1.2-a_drop5p5.
+    The trees in which events have wrong id's are:
+
+    mysql-5.1-wl1012.old mysql-5.1-wl2325-5.0-drop6p13-alpha
+    mysql-5.1-wl2325-5.0-drop6 mysql-5.1-wl2325-5.0
+    mysql-5.1-wl2325-no-dd
+
+    (this was found by grepping for two lines in sequence where the
+    first matches "FORMAT_DESCRIPTION_EVENT," and the second matches
+    "TABLE_MAP_EVENT," in log_event.h in all trees)
+
+    In these trees, the following server_versions existed since
+    TABLE_MAP_EVENT was introduced:
+
+    5.1.1-a_drop5p3   5.1.1-a_drop5p4        5.1.1-alpha
+    5.1.2-a_drop5p10  5.1.2-a_drop5p11       5.1.2-a_drop5p12
+    5.1.2-a_drop5p13  5.1.2-a_drop5p14       5.1.2-a_drop5p15
+    5.1.2-a_drop5p16  5.1.2-a_drop5p16b      5.1.2-a_drop5p16c
+    5.1.2-a_drop5p17  5.1.2-a_drop5p4        5.1.2-a_drop5p5
+    5.1.2-a_drop5p6   5.1.2-a_drop5p7        5.1.2-a_drop5p8
+    5.1.2-a_drop5p9   5.1.3-a_drop5p17       5.1.3-a_drop5p17b
+    5.1.3-a_drop5p17c 5.1.4-a_drop5p18       5.1.4-a_drop5p19
+    5.1.4-a_drop5p20  5.1.4-a_drop6p0        5.1.4-a_drop6p1
+    5.1.4-a_drop6p2   5.1.5-a_drop5p20       5.2.0-a_drop6p3
+    5.2.0-a_drop6p4   5.2.0-a_drop6p5        5.2.0-a_drop6p6
+    5.2.1-a_drop6p10  5.2.1-a_drop6p11       5.2.1-a_drop6p12
+    5.2.1-a_drop6p6   5.2.1-a_drop6p7        5.2.1-a_drop6p8
+    5.2.2-a_drop6p13  5.2.2-a_drop6p13-alpha 5.2.2-a_drop6p13b
+    5.2.2-a_drop6p13c
+
+    (this was found by grepping for "mysql," in all historical
+    versions of configure.in in the trees listed above).
+
+    There are 5.1.1-alpha versions that use the new event id's, so we
+    do not test that version string.  So replication from 5.1.1-alpha
+    with the other event id's to a new version does not work.
+    Moreover, we can safely ignore the part after drop[56].  This
+    allows us to simplify the big list above to the following regexes:
+
+    5\.1\.[1-5]-a_drop5.*
+    5\.1\.4-a_drop6.*
+    5\.2\.[0-2]-a_drop6.*
+
+    This is what we test for in the 'if' below.
   */
   if (post_header_len &&
-      (strncmp(server_version, "5.1.2-a_drop5", 13) == 0 ||
-       strncmp(server_version, "5.1.5-a_drop5", 13) == 0 ||
-       strncmp(server_version, "5.2.2-a_drop6", 13) == 0))
+      server_version[0] == '5' && server_version[1] == '.' &&
+      server_version[3] == '.' &&
+      strncmp(server_version + 5, "-a_drop", 7) == 0 &&
+      ((server_version[2] == '1' &&
+        server_version[4] >= '1' && server_version[4] <= '5' &&
+        server_version[12] == '5') ||
+       (server_version[2] == '1' &&
+        server_version[4] == '4' &&
+        server_version[12] == '6') ||
+       (server_version[2] == '2' &&
+        server_version[4] >= '0' && server_version[4] <= '2' &&
+        server_version[12] == '6')))
   {
     if (number_of_event_types != 22)
     {
Thread
bk commit into 5.1 tree (sven:1.2678) BUG#32434Sven Sandberg29 Jan 2008
  • Re: bk commit into 5.1 tree (sven:1.2678) BUG#32434He Zhenxing30 Jan 2008