diff options
author | unknown <nick@mysql.com> | 2002-10-07 15:42:10 -0600 |
---|---|---|
committer | unknown <nick@mysql.com> | 2002-10-07 15:42:10 -0600 |
commit | 642b759333e1c4d210b2a9b6687c1021324c7627 (patch) | |
tree | 9997d085fbe0c80ca2c5861d96de3a8da03bbae6 | |
parent | 18585d178d6cbf8364c11da5973531681ac26879 (diff) | |
download | mariadb-git-642b759333e1c4d210b2a9b6687c1021324c7627.tar.gz |
fixed race that caused sig11s on simultaneous FLUSH LOGS
(possibly also fixes binlog filename corruption problems--hasn't
been reproduced since)
sql/log.cc:
Fixed race caused by calling MYSQL_LOG::is_open() outside of critical section.
sql/sql_parse.cc:
added missing args to calls to MYSQL_LOG::new_file(bool)
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
-rw-r--r-- | BitKeeper/etc/logging_ok | 1 | ||||
-rw-r--r-- | sql/log.cc | 10 | ||||
-rw-r--r-- | sql/sql_parse.cc | 8 |
3 files changed, 10 insertions, 9 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 2e089f1b96a..e85dfeb876f 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -30,3 +30,4 @@ zak@balfor.local bar@bar.mysql.r18.ru paul@teton.kitebird.com serg@build.mysql2.com +nick@mysql.com diff --git a/sql/log.cc b/sql/log.cc index b90659fdf55..e3f85c8def5 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -513,12 +513,12 @@ bool MYSQL_LOG::is_active(const char* log_file_name) void MYSQL_LOG::new_file(bool inside_mutex) { + if (!inside_mutex) + VOID(pthread_mutex_lock(&LOCK_log)); if (is_open()) { char new_name[FN_REFLEN], *old_name=name; - if (!inside_mutex) - VOID(pthread_mutex_lock(&LOCK_log)); - + if (!no_rotate) { /* @@ -550,9 +550,9 @@ void MYSQL_LOG::new_file(bool inside_mutex) my_free(old_name,MYF(0)); last_time=query_start=0; write_error=0; - if (!inside_mutex) - VOID(pthread_mutex_unlock(&LOCK_log)); } + if (!inside_mutex) + VOID(pthread_mutex_unlock(&LOCK_log)); } diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 1dc97d53d02..1803568f880 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2839,10 +2839,10 @@ bool reload_acl_and_cache(THD *thd, uint options, TABLE_LIST *tables) } if (options & REFRESH_LOG) { - mysql_log.new_file(); - mysql_update_log.new_file(); - mysql_bin_log.new_file(); - mysql_slow_log.new_file(); + mysql_log.new_file(0); + mysql_update_log.new_file(0); + mysql_bin_log.new_file(0); + mysql_slow_log.new_file(0); if (ha_flush_logs()) result=1; } |