Commit 99c7cbe9 authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com

Merge work:/home/bk/mysql

into mysql.sashanet.com:/home/sasha/src/bk/mysql
parents 3acf37e6 8c1fa4e3
...@@ -40,7 +40,7 @@ extern bool opt_log_slave_updates ; ...@@ -40,7 +40,7 @@ extern bool opt_log_slave_updates ;
static inline bool slave_killed(THD* thd); static inline bool slave_killed(THD* thd);
static int init_slave_thread(THD* thd); static int init_slave_thread(THD* thd);
static int init_master_info(MASTER_INFO* mi); int init_master_info(MASTER_INFO* mi);
static void safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi); static void safe_connect(THD* thd, MYSQL* mysql, MASTER_INFO* mi);
static void safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi); static void safe_reconnect(THD* thd, MYSQL* mysql, MASTER_INFO* mi);
static int safe_sleep(THD* thd, int sec); static int safe_sleep(THD* thd, int sec);
...@@ -249,7 +249,7 @@ int fetch_nx_table(THD* thd, MASTER_INFO* mi) ...@@ -249,7 +249,7 @@ int fetch_nx_table(THD* thd, MASTER_INFO* mi)
return error; return error;
} }
static int init_master_info(MASTER_INFO* mi) int init_master_info(MASTER_INFO* mi)
{ {
FILE* file; FILE* file;
MY_STAT stat_area; MY_STAT stat_area;
......
...@@ -52,6 +52,7 @@ static int change_master(THD* thd); ...@@ -52,6 +52,7 @@ static int change_master(THD* thd);
static void reset_slave(); static void reset_slave();
static void reset_master(); static void reset_master();
extern int init_master_info(MASTER_INFO* mi);
static const char *any_db="*any*"; // Special symbol for check_access static const char *any_db="*any*"; // Special symbol for check_access
...@@ -2462,7 +2463,7 @@ static int start_slave(THD* thd , bool net_report) ...@@ -2462,7 +2463,7 @@ static int start_slave(THD* thd , bool net_report)
return 1; return 1;
pthread_mutex_lock(&LOCK_slave); pthread_mutex_lock(&LOCK_slave);
if(!slave_running) if(!slave_running)
if(master_host) if(glob_mi.inited && glob_mi.host)
{ {
pthread_t hThread; pthread_t hThread;
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0)) if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
...@@ -2471,7 +2472,7 @@ static int start_slave(THD* thd , bool net_report) ...@@ -2471,7 +2472,7 @@ static int start_slave(THD* thd , bool net_report)
} }
} }
else else
err = "Master host not set"; err = "Master host not set or master info not initialized";
else else
err = "Slave already running"; err = "Slave already running";
...@@ -2557,6 +2558,9 @@ static int change_master(THD* thd) ...@@ -2557,6 +2558,9 @@ static int change_master(THD* thd)
thd->proc_info = "changing master"; thd->proc_info = "changing master";
LEX_MASTER_INFO* lex_mi = &thd->lex.mi; LEX_MASTER_INFO* lex_mi = &thd->lex.mi;
if(!glob_mi.inited)
init_master_info(&glob_mi);
pthread_mutex_lock(&glob_mi.lock); pthread_mutex_lock(&glob_mi.lock);
if((lex_mi->host || lex_mi->port) && !lex_mi->log_file_name && !lex_mi->pos) if((lex_mi->host || lex_mi->port) && !lex_mi->log_file_name && !lex_mi->pos)
{ {
......
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