replication bugfixes

parent 3f388457
...@@ -1568,9 +1568,6 @@ command"); ...@@ -1568,9 +1568,6 @@ command");
static ulong read_event(MYSQL* mysql, MASTER_INFO *mi) static ulong read_event(MYSQL* mysql, MASTER_INFO *mi)
{ {
ulong len = packet_error; ulong len = packet_error;
// for convinience lets think we start by
// being in the interrupted state :-)
int read_errno = EINTR;
// my_real_read() will time us out // my_real_read() will time us out
// we check if we were told to die, and if not, try reading again // we check if we were told to die, and if not, try reading again
...@@ -1579,27 +1576,21 @@ static ulong read_event(MYSQL* mysql, MASTER_INFO *mi) ...@@ -1579,27 +1576,21 @@ static ulong read_event(MYSQL* mysql, MASTER_INFO *mi)
return packet_error; return packet_error;
#endif #endif
while (!abort_loop && !mi->abort_slave && len == packet_error && len = mc_net_safe_read(mysql);
read_errno == EINTR )
{
len = mc_net_safe_read(mysql);
read_errno = errno;
}
if (abort_loop || mi->abort_slave)
return packet_error;
if (len == packet_error || (long) len < 1) if (len == packet_error || (long) len < 1)
{ {
sql_print_error("Error reading packet from server: %s (read_errno %d,\ sql_print_error("Error reading packet from server: %s (\
server_errno=%d)", server_errno=%d)",
mc_mysql_error(mysql), read_errno, mc_mysql_errno(mysql)); mc_mysql_error(mysql), mc_mysql_errno(mysql));
return packet_error; return packet_error;
} }
if (len == 1) if (len == 1)
{ {
sql_print_error("Slave: received 0 length packet from server, apparent\ sql_print_error("Slave: received 0 length packet from server, apparent\
master shutdown: %s (%d)", master shutdown: %s",
mc_mysql_error(mysql), read_errno); mc_mysql_error(mysql));
return packet_error; return packet_error;
} }
......
...@@ -160,6 +160,7 @@ typedef struct st_relay_log_info ...@@ -160,6 +160,7 @@ typedef struct st_relay_log_info
st_relay_log_info():info_fd(-1),cur_log_fd(-1),inited(0), st_relay_log_info():info_fd(-1),cur_log_fd(-1),inited(0),
cur_log_init_count(0), cur_log_init_count(0),
abort_slave(0),slave_running(0),
log_pos_current(0),abort_pos_wait(0), log_pos_current(0),abort_pos_wait(0),
skip_log_purge(0) skip_log_purge(0)
{ {
...@@ -280,7 +281,8 @@ typedef struct st_master_info ...@@ -280,7 +281,8 @@ typedef struct st_master_info
bool ignore_stop_event; bool ignore_stop_event;
st_master_info():fd(-1), io_thd(0), inited(0), old_format(0) st_master_info():fd(-1), io_thd(0), inited(0), old_format(0),abort_slave(0),
slave_running(0)
{ {
host[0] = 0; user[0] = 0; password[0] = 0; host[0] = 0; user[0] = 0; password[0] = 0;
bzero(&file,sizeof(file)); bzero(&file,sizeof(file));
......
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