1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

fixed up leaks found by --exit-info=256

better error diagnostic in SLAVE START


sql/mini_client.cc:
  if we fail to connect, we need to free the inited structure
sql/mysqld.cc:
  added end_slave() for slave cleanup
sql/slave.cc:
  fixed serveral memory leaks
sql/slave.h:
  added end_master_info() for clean up
sql/sql_class.cc:
  not changed
sql/sql_repl.cc:
  initialize master info before creating slave thread in SLAVE START -
  this way we can easily send an error to the client if something is 
  wrong in init_master_info
This commit is contained in:
unknown
2000-12-09 14:28:51 -07:00
parent 701af10414
commit 8beb43501b
6 changed files with 67 additions and 16 deletions

View File

@@ -503,17 +503,20 @@ int start_slave(THD* thd , bool net_report)
return 1;
pthread_mutex_lock(&LOCK_slave);
if(!slave_running)
if(glob_mi.inited && glob_mi.host && server_id_supplied)
{
pthread_t hThread;
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
{
err = "cannot create slave thread";
}
}
else
err = "Master host not set, master info not initialized, or server id \
not configured";
{
if(init_master_info(&glob_mi))
err = "Could not initialize master info";
else if(server_id_supplied && *glob_mi.host)
{
pthread_t hThread;
if(pthread_create(&hThread, &connection_attrib, handle_slave, 0))
{
err = "cannot create slave thread";
}
}
else
err = "Master host not set, or server id not configured";
}
else
err = "Slave already running";
@@ -578,7 +581,7 @@ void reset_slave()
if(my_stat(fname, &stat_area, MYF(0)))
if(my_delete(fname, MYF(MY_WME)))
return;
end_master_info(&glob_mi);
if(slave_was_running)
start_slave(0,0);
}