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

Backport of Sasha's fix to 3.23 from 4.0

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

  if (len == 1)
  {
     sql_print_error("Slave: received 0 length packet from server, apparent\
 master shutdown: %s (%d)",
		     mc_mysql_error(mysql), read_errno);
 master shutdown: %s",
		     mc_mysql_error(mysql));
     return packet_error;
  }