Commit 516d26ae authored by kaa@polly.(none)'s avatar kaa@polly.(none)

Merge polly.(none):/home/kaa/src/opt/bug29976/my51-bug28550

into  polly.(none):/home/kaa/src/opt/mysql-5.1-opt
parents b2e23abc 218a2196
...@@ -137,6 +137,7 @@ static int terminate_slave_thread(THD *thd, ...@@ -137,6 +137,7 @@ static int terminate_slave_thread(THD *thd,
pthread_cond_t* term_cond, pthread_cond_t* term_cond,
volatile uint *slave_running, volatile uint *slave_running,
bool skip_lock); bool skip_lock);
static bool check_io_slave_killed(THD *thd, Master_info *mi, const char *info);
/* /*
Find out which replications threads are running Find out which replications threads are running
...@@ -821,7 +822,7 @@ static int get_master_version_and_clock(MYSQL* mysql, Master_info* mi) ...@@ -821,7 +822,7 @@ static int get_master_version_and_clock(MYSQL* mysql, Master_info* mi)
mi->clock_diff_with_master= mi->clock_diff_with_master=
(long) (time((time_t*) 0) - strtoul(master_row[0], 0, 10)); (long) (time((time_t*) 0) - strtoul(master_row[0], 0, 10));
} }
else else if (!check_io_slave_killed(mi->io_thd, mi, NULL))
{ {
mi->clock_diff_with_master= 0; /* The "most sensible" value */ mi->clock_diff_with_master= 0; /* The "most sensible" value */
sql_print_warning("\"SELECT UNIX_TIMESTAMP()\" failed on master, " sql_print_warning("\"SELECT UNIX_TIMESTAMP()\" failed on master, "
...@@ -1223,7 +1224,7 @@ int register_slave_on_master(MYSQL* mysql, Master_info *mi, ...@@ -1223,7 +1224,7 @@ int register_slave_on_master(MYSQL* mysql, Master_info *mi,
{ {
*suppress_warnings= TRUE; // Suppress reconnect warning *suppress_warnings= TRUE; // Suppress reconnect warning
} }
else else if (!check_io_slave_killed(mi->io_thd, mi, NULL))
{ {
char buf[256]; char buf[256];
my_snprintf(buf, sizeof(buf), "%s (Errno: %d)", mysql_error(mysql), my_snprintf(buf, sizeof(buf), "%s (Errno: %d)", mysql_error(mysql),
...@@ -1986,7 +1987,7 @@ static bool check_io_slave_killed(THD *thd, Master_info *mi, const char *info) ...@@ -1986,7 +1987,7 @@ static bool check_io_slave_killed(THD *thd, Master_info *mi, const char *info)
{ {
if (io_slave_killed(thd, mi)) if (io_slave_killed(thd, mi))
{ {
if (global_system_variables.log_warnings) if (info && global_system_variables.log_warnings)
sql_print_information(info); sql_print_information(info);
return TRUE; return TRUE;
} }
...@@ -2170,13 +2171,17 @@ connected: ...@@ -2170,13 +2171,17 @@ connected:
*/ */
thd->proc_info = "Registering slave on master"; thd->proc_info = "Registering slave on master";
if (register_slave_on_master(mysql, mi, &suppress_warnings)) if (register_slave_on_master(mysql, mi, &suppress_warnings))
{
if (!check_io_slave_killed(thd, mi, "Slave I/O thread killed "
"while registering slave on master"))
{ {
sql_print_error("Slave I/O thread couldn't register on master"); sql_print_error("Slave I/O thread couldn't register on master");
if (check_io_slave_killed(thd, mi, "Slave I/O thread killed while \ if (try_to_reconnect(thd, mysql, mi, &retry_count, suppress_warnings,
registering slave on master") ||
try_to_reconnect(thd, mysql, mi, &retry_count, suppress_warnings,
reconnect_messages[SLAVE_RECON_ACT_REG])) reconnect_messages[SLAVE_RECON_ACT_REG]))
goto err; goto err;
}
else
goto err;
goto connected; goto connected;
} }
DBUG_EXECUTE_IF("FORCE_SLAVE_TO_RECONNECT_REG", DBUG_EXECUTE_IF("FORCE_SLAVE_TO_RECONNECT_REG",
......
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