Commit b2d2dd5c authored by unknown's avatar unknown

Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0

into mysql.com:/home/mysql_src/mysql-4.0
parents aecddd8e 190b3a25
......@@ -1081,7 +1081,7 @@ int do_sync_with_master2(const char* p)
MYSQL_ROW row;
MYSQL* mysql = &cur_con->mysql;
char query_buf[FN_REFLEN+128];
int offset = 0;
int offset= 0, tries= 0;
int rpl_parse;
if (!master_pos.file[0])
......@@ -1096,6 +1096,9 @@ int do_sync_with_master2(const char* p)
sprintf(query_buf, "select master_pos_wait('%s', %ld)", master_pos.file,
master_pos.pos + offset);
wait_for_position:
if (mysql_query(mysql, query_buf))
die("line %u: failed in %s: %d: %s", start_lineno, query_buf,
mysql_errno(mysql), mysql_error(mysql));
......@@ -1106,8 +1109,20 @@ int do_sync_with_master2(const char* p)
if (!(row = mysql_fetch_row(res)))
die("line %u: empty result in %s", start_lineno, query_buf);
if (!row[0])
die("line %u: could not sync with master ('%s' returned NULL)",
start_lineno, query_buf);
{
/*
It may be that the slave SQL thread has not started yet, though START
SLAVE has been issued ?
*/
if (tries++ == 3)
{
die("line %u: could not sync with master ('%s' returned NULL)",
start_lineno, query_buf);
}
sleep(1); /* So at most we will wait 3 seconds and make 4 tries */
mysql_free_result(res);
goto wait_for_position;
}
mysql_free_result(res);
last_result=0;
if (rpl_parse)
......
......@@ -4,7 +4,6 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
slave start;
drop table if exists t1;
create table t1 (n int);
reset master;
stop slave;
......
......@@ -3,7 +3,6 @@
source include/master-slave.inc;
connection slave;
drop table if exists t1;
create table t1 (n int);
reset master;
# replicate ourselves
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment