diff options
author | unknown <vva@eagle.mysql.r18.ru> | 2003-09-29 15:42:33 -0400 |
---|---|---|
committer | unknown <vva@eagle.mysql.r18.ru> | 2003-09-29 15:42:33 -0400 |
commit | 0cb0542ac53b97f20f45af73dfddaa7fb57ddc4a (patch) | |
tree | 8c42c430a7456255855ae8b57e968901da0c3ade /sql | |
parent | 851bb139afbd0c62c9c56ed96a8c2637a9ccc2e6 (diff) | |
download | mariadb-git-0cb0542ac53b97f20f45af73dfddaa7fb57ddc4a.tar.gz |
fixed processing of COM_BINLOG_DUMP to use in mysqlbinlog
sql/sql_repl.cc:
fixed mysql_binlog_send to use COM_BINLOG_DUMP in mysqlbinlog
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_parse.cc | 3 | ||||
-rw-r--r-- | sql/sql_repl.cc | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 81233c038a1..3f6fa8d24ad 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -929,7 +929,8 @@ bool do_command(THD *thd) pos = uint4korr(packet + 1); flags = uint2korr(packet + 5); pthread_mutex_lock(&LOCK_server_id); - kill_zombie_dump_threads(slave_server_id = uint4korr(packet+7)); + if ((slave_server_id = uint4korr(packet+7))) + kill_zombie_dump_threads(slave_server_id); thd->server_id = slave_server_id; pthread_mutex_unlock(&LOCK_server_id); mysql_binlog_send(thd, thd->strdup(packet + 11), pos, flags); diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 1940ff360c2..ec5d45bca90 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -442,6 +442,11 @@ void mysql_binlog_send(THD* thd, char* log_ident, ulong pos, ushort flags) break; case LOG_READ_EOF: DBUG_PRINT("wait",("waiting for data on binary log")); + if (thd->server_id==0) + { + pthread_mutex_unlock(log_lock); + goto end; + } if (!thd->killed) pthread_cond_wait(&COND_binlog_update, log_lock); break; @@ -523,6 +528,7 @@ void mysql_binlog_send(THD* thd, char* log_ident, ulong pos, ushort flags) } } +end: end_io_cache(&log); (void)my_close(file, MYF(MY_WME)); @@ -532,7 +538,7 @@ void mysql_binlog_send(THD* thd, char* log_ident, ulong pos, ushort flags) thd->current_linfo = 0; pthread_mutex_unlock(&LOCK_thread_count); DBUG_VOID_RETURN; - err: +err: thd->proc_info = "waiting to finalize termination"; end_io_cache(&log); pthread_mutex_lock(&LOCK_thread_count); |