From 71373afb5c48a27bde3e80a5207a14101d740cc8 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 2 Jul 2003 16:56:27 -0400 Subject: [PATCH] fixed bug #672 client/mysqlbinlog.cc: changed format of eof-packet for protocol 4.1 --- client/mysqlbinlog.cc | 2 +- sql/sql_parse.cc | 3 ++- sql/sql_repl.cc | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc index 75b875b4f4e..109e9095b7a 100644 --- a/client/mysqlbinlog.cc +++ b/client/mysqlbinlog.cc @@ -360,7 +360,7 @@ static void dump_remote_log_entries(const char* logname) len = net_safe_read(mysql); if (len == packet_error) die("Error reading packet from server: %s", mysql_error(mysql)); - if (len == 1 && net->read_pos[0] == 254) + if (len < 8 && net->read_pos[0] == 254) break; // end of data DBUG_PRINT("info",( "len= %u, net->read_pos[5] = %d\n", len, net->read_pos[5])); diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index d9060b4b26e..233644feb4e 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1147,7 +1147,8 @@ bool dispatch_command(enum enum_server_command command, THD *thd, pos = uint4korr(packet); flags = uint2korr(packet + 4); thd->server_id=0; /* avoid suicide */ - kill_zombie_dump_threads(slave_server_id = uint4korr(packet+6)); + if ((slave_server_id= uint4korr(packet+6))) + kill_zombie_dump_threads(slave_server_id); thd->server_id = slave_server_id; mysql_binlog_send(thd, thd->strdup(packet + 10), (my_off_t) pos, flags); unregister_slave(thd,1,1); diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 283dd20a56c..bc833d7e759 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -503,6 +503,11 @@ Increase max_allowed_packet on master"; case LOG_READ_EOF: DBUG_PRINT("wait",("waiting for data in binary log")); + if (thd->server_id==0) + { + pthread_mutex_unlock(log_lock); + goto end; + } if (!thd->killed) { /* Note that the following call unlocks lock_log */ @@ -590,6 +595,7 @@ Increase max_allowed_packet on master"; } } +end: end_io_cache(&log); (void)my_close(file, MYF(MY_WME)); @@ -600,7 +606,7 @@ Increase max_allowed_packet on master"; pthread_mutex_unlock(&LOCK_thread_count); DBUG_VOID_RETURN; - err: +err: thd->proc_info = "waiting to finalize termination"; end_io_cache(&log); /*