summaryrefslogtreecommitdiff
path: root/sql/sql_repl.cc
diff options
context:
space:
mode:
authorsasha@mysql.sashanet.com <>2000-12-14 20:17:18 -0700
committersasha@mysql.sashanet.com <>2000-12-14 20:17:18 -0700
commitd9d49dfa44d27b049f44ea68fa16ea5f741f1971 (patch)
tree6ce66573de32684888564f6510cde5213520f2f3 /sql/sql_repl.cc
parentb3211ac281e78b68e6ce8096c5a62ba7d1a1c092 (diff)
downloadmariadb-git-d9d49dfa44d27b049f44ea68fa16ea5f741f1971.tar.gz
client/mysqltest.c
fixed bug that created empty result files in no-record mode mysql-test/t/rpl000007.test testing non-replication of load data infile when the table is excluded from replication mysql-test/t/rpl000016.test test purge master logs sql/slave.cc fix memory leaks found by purge master logs test sql/sql_repl.cc fixed race condition and delete before close bug in reset_slave() Overall comments - coverage testing is a very good thing!
Diffstat (limited to 'sql/sql_repl.cc')
-rw-r--r--sql/sql_repl.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index e27a77422ad..0aaaf027ea3 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -577,16 +577,22 @@ void reset_slave()
{
MY_STAT stat_area;
char fname[FN_REFLEN];
- bool slave_was_running = slave_running;
-
- if(slave_running)
- stop_slave(0,0);
+ bool slave_was_running ;
+ pthread_mutex_lock(&LOCK_slave);
+ if((slave_was_running = slave_running))
+ {
+ pthread_mutex_unlock(&LOCK_slave);
+ stop_slave(0,0);
+ }
+ else
+ pthread_mutex_unlock(&LOCK_slave);
+
+ end_master_info(&glob_mi);
fn_format(fname, master_info_file, mysql_data_home, "", 4+16+32);
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);
}