Commit 2453d43a authored by nick@nick.leippe.com's avatar nick@nick.leippe.com

Backport of Sasha's fix to 3.23 from 4.0

see dev-private email from sasha, subject:
URGENT: rpl_sporadic_master
parent 152734e3
...@@ -17,3 +17,4 @@ miguel@hegel.local ...@@ -17,3 +17,4 @@ miguel@hegel.local
arjen@fred.bitbike.com arjen@fred.bitbike.com
sinisa@rhols221.adsl.netsonic.fi sinisa@rhols221.adsl.netsonic.fi
Sinisa@sinisa.nasamreza.org Sinisa@sinisa.nasamreza.org
nick@nick.leippe.com
...@@ -837,9 +837,6 @@ command"); ...@@ -837,9 +837,6 @@ command");
static uint read_event(MYSQL* mysql, MASTER_INFO *mi) static uint read_event(MYSQL* mysql, MASTER_INFO *mi)
{ {
uint len = packet_error; uint 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
...@@ -848,27 +845,21 @@ static uint read_event(MYSQL* mysql, MASTER_INFO *mi) ...@@ -848,27 +845,21 @@ static uint read_event(MYSQL* mysql, MASTER_INFO *mi)
return packet_error; return packet_error;
#endif #endif
while (!abort_loop && !abort_slave && len == packet_error &&
read_errno == EINTR )
{
len = mc_net_safe_read(mysql); len = mc_net_safe_read(mysql);
read_errno = errno;
} if (len == packet_error || (long) len < 1)
if (abort_loop || abort_slave)
return packet_error;
if (len == packet_error || (int) 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;
} }
......
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