Commit 37caf28c authored by Luis Soares's avatar Luis Soares

automerging bugfixes in latest mysql-trunk-bugfixing.

parents 87942361 e8ee4714
...@@ -2032,6 +2032,7 @@ int main(int argc, char** argv) ...@@ -2032,6 +2032,7 @@ int main(int argc, char** argv)
{ {
usage(); usage();
free_defaults(defaults_argv); free_defaults(defaults_argv);
my_thread_end();
exit(1); exit(1);
} }
......
...@@ -164,7 +164,29 @@ int init_master_info(Master_info* mi, const char* master_info_fname, ...@@ -164,7 +164,29 @@ int init_master_info(Master_info* mi, const char* master_info_fname,
*/ */
if (thread_mask & SLAVE_SQL) if (thread_mask & SLAVE_SQL)
{ {
bool hot_log= FALSE;
/*
my_b_seek does an implicit flush_io_cache, so we need to:
1. check if this log is active (hot)
2. if it is we keep log_lock until the seek ends, otherwise
release it right away.
If we did not take log_lock, SQL thread might race with IO
thread for the IO_CACHE mutex.
*/
mysql_mutex_t *log_lock= mi->rli.relay_log.get_log_lock();
mysql_mutex_lock(log_lock);
hot_log= mi->rli.relay_log.is_active(mi->rli.linfo.log_file_name);
if (!hot_log)
mysql_mutex_unlock(log_lock);
my_b_seek(mi->rli.cur_log, (my_off_t) 0); my_b_seek(mi->rli.cur_log, (my_off_t) 0);
if (hot_log)
mysql_mutex_unlock(log_lock);
} }
DBUG_RETURN(0); DBUG_RETURN(0);
} }
......
...@@ -2202,7 +2202,7 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists, ...@@ -2202,7 +2202,7 @@ int mysql_rm_table_part2(THD *thd, TABLE_LIST *tables, bool if_exists,
if (some_tables_deleted || tmp_table_deleted || !error) if (some_tables_deleted || tmp_table_deleted || !error)
{ {
query_cache_invalidate3(thd, tables, 0); query_cache_invalidate3(thd, tables, 0);
if (!dont_log_query) if (!dont_log_query && mysql_bin_log.is_open())
{ {
if (!thd->is_current_stmt_binlog_format_row() || if (!thd->is_current_stmt_binlog_format_row() ||
(non_temp_tables_count > 0 && !tmp_table_deleted)) (non_temp_tables_count > 0 && !tmp_table_deleted))
......
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