List:Commits« Previous MessageNext Message »
From:Martin Skold Date:September 19 2006 9:32am
Subject:bk commit into 5.1 tree (mskold:1.2322) BUG#18679
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of marty. When marty 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, 2006-09-19 11:31:55+02:00, mskold@stripped +2 -0
  Bug #18679  rpl_ndb_dd_advance.test fails randomly

  client/mysqltest.c@stripped, 2006-09-19 11:31:22+02:00, mskold@stripped +90 -39
    Bug #18679  rpl_ndb_dd_advance.test fails randomly

  mysql-test/t/disabled.def@stripped, 2006-09-19 11:31:22+02:00, mskold@stripped +0 -1
    Bug #18679  rpl_ndb_dd_advance.test fails randomly

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	mskold
# Host:	linux.site
# Root:	/windows/Linux_space/MySQL/mysql-5.1

--- 1.196/mysql-test/t/disabled.def	2006-09-19 11:32:03 +02:00
+++ 1.197/mysql-test/t/disabled.def	2006-09-19 11:32:03 +02:00
@@ -40,7 +40,6 @@ rpl_sp_effects           : BUG#19862 200
 #rpl_row_basic_7ndb       : BUG#21298 2006-07-27 msvensson
 #rpl_truncate_7ndb        : BUG#21298 2006-07-27 msvensson
 crash_commit_before      : 2006-08-02 msvensson
-rpl_ndb_dd_advance       : BUG#18679 2006-07-28 jimw (Test fails randomly)
 func_group               : BUG#21924 2006-08-30 reggie
 func_in                  : BUG#21925 2006-08-30 reggie
 ndb_binlog_discover      : bug#21806 2006-08-24

--- 1.224/client/mysqltest.c	2006-09-19 11:32:03 +02:00
+++ 1.225/client/mysqltest.c	2006-09-19 11:32:03 +02:00
@@ -1625,16 +1625,25 @@ int do_save_master_pos()
 
     if (have_ndbcluster)
     {
-      ulonglong epoch=0, tmp_epoch= 0;
+      ulonglong start_epoch= 0, applied_epoch= 0,
+	latest_epoch=0, latest_trans_epoch=0, 
+	latest_handled_binlog_epoch= 0, latest_received_binlog_epoch= 0,
+	latest_applied_binlog_epoch= 0;
       int count= 0;
       int do_continue= 1;
       while (do_continue)
       {
         const char binlog[]= "binlog";
-        const char latest_trans_epoch[]=
+	const char latest_epoch_str[]=
+          "latest_epoch=";
+        const char latest_trans_epoch_str[]=
           "latest_trans_epoch=";
-        const char latest_handled_binlog_epoch[]=
+	const char latest_received_binlog_epoch_str[]=
+	  "latest_received_binlog_epoch";
+        const char latest_handled_binlog_epoch_str[]=
           "latest_handled_binlog_epoch=";
+        const char latest_applied_binlog_epoch_str[]=
+          "latest_applied_binlog_epoch=";
         if (count)
           sleep(1);
         if (mysql_query(mysql, query= "show engine ndb status"))
@@ -1648,45 +1657,87 @@ int do_save_master_pos()
           if (strcmp(row[1], binlog) == 0)
           {
             const char *status= row[2];
-            /* latest_trans_epoch */
-            if (count == 0)
+
+	    // latest_epoch
+	    while (*status && strncmp(status, latest_epoch_str,
+				      sizeof(latest_epoch_str)-1))
+	      status++;
+	    if (*status)
             {
-              while (*status && strncmp(status, latest_trans_epoch,
-                                        sizeof(latest_trans_epoch)-1))
-                status++;
-              if (*status)
-              {
-                status+= sizeof(latest_trans_epoch)-1;
-                epoch= strtoull(status, (char**) 0, 10);
-              }
-              else
-                die("line %u: result does not contain '%s' in '%s'",
-                    start_lineno, latest_trans_epoch, query);
-            }
-            /* latest_applied_binlog_epoch */
-            while (*status && strncmp(status, latest_handled_binlog_epoch,
-                                      sizeof(latest_handled_binlog_epoch)-1))
-              status++;
-            if (*status)
-            {
-              status+= sizeof(latest_handled_binlog_epoch)-1;
-              tmp_epoch= strtoull(status, (char**) 0, 10);
-            }
-            else
-              die("line %u: result does not contain '%s' in '%s'",
-                  start_lineno, latest_handled_binlog_epoch, query);
-            break;
-          }
-        }
-        if (!row)
-          die("line %u: result does not contain '%s' in '%s'",
-              start_lineno, binlog, query);
-        count++;
-        if (tmp_epoch >= epoch)
+	      status+= sizeof(latest_epoch_str)-1;
+	      latest_epoch= strtoull(status, (char**) 0, 10);
+	    }
+	    else
+	      die("line %u: result does not contain '%s' in '%s'",
+		  start_lineno, latest_epoch_str, query);
+	    // latest_trans_epoch
+	    while (*status && strncmp(status, latest_trans_epoch_str,
+				      sizeof(latest_trans_epoch_str)-1))
+	      status++;
+	    if (*status)
+	    {
+	      status+= sizeof(latest_trans_epoch_str)-1;
+	      latest_trans_epoch= strtoull(status, (char**) 0, 10);
+	    }
+	    else
+	      die("line %u: result does not contain '%s' in '%s'",
+		  start_lineno, latest_trans_epoch_str, query);
+	    /* latest_received_binlog_epoch */
+	    while (*status && 
+		   strncmp(status, latest_received_binlog_epoch_str,
+			   sizeof(latest_received_binlog_epoch_str)-1))
+	      status++;
+	    if (*status)
+	    {
+	      status+= sizeof(latest_received_binlog_epoch_str)-1;
+	      latest_received_binlog_epoch= strtoull(status, (char**) 0, 10);
+	    }
+	    else
+	      die("line %u: result does not contain '%s' in '%s'",
+		  start_lineno, latest_received_binlog_epoch_str, query);
+	    /* latest_handled_binlog */
+	    while (*status && 
+		   strncmp(status, latest_handled_binlog_epoch_str,
+			   sizeof(latest_handled_binlog_epoch_str)-1))
+	      status++;
+	    if (*status)
+	    {
+	      status+= sizeof(latest_handled_binlog_epoch_str)-1;
+	      latest_handled_binlog_epoch= strtoull(status, (char**) 0, 10);
+	    }
+	    else
+	      die("line %u: result does not contain '%s' in '%s'",
+		  start_lineno, latest_handled_binlog_epoch_str, query);
+	    /* latest_applied_binlog_epoch */
+	    while (*status && 
+		   strncmp(status, latest_applied_binlog_epoch_str,
+			   sizeof(latest_applied_binlog_epoch_str)-1))
+	      status++;
+	    if (*status)
+	    {
+	      status+= sizeof(latest_applied_binlog_epoch_str)-1;
+	      latest_applied_binlog_epoch= strtoull(status, (char**) 0, 10);
+	    }
+	    else
+	      die("line %u: result does not contain '%s' in '%s'",
+		  start_lineno, latest_applied_binlog_epoch_str, query);
+	    if (count == 0)
+	      start_epoch= latest_trans_epoch;
+	    break;
+	  }
+	}
+	if (!row)
+	  die("line %u: result does not contain '%s' in '%s'",
+	      start_lineno, binlog, query);
+	if (latest_applied_binlog_epoch > applied_epoch)
+	  count= 0;
+	applied_epoch= latest_applied_binlog_epoch;
+	count++;
+	if (latest_handled_binlog_epoch >= start_epoch)
           do_continue= 0;
         else if (count > 30)
-        {
-          break;
+	{
+	  break;
         }
         mysql_free_result(res);
       }
Thread
bk commit into 5.1 tree (mskold:1.2322) BUG#18679Martin Skold19 Sep