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#18679 | Martin Skold | 19 Sep |