Commit 57ba34ff authored by unknown's avatar unknown
Browse files

bug#19402 SQL close to the size of the max_allowed_packet fails on the slave

comments are fixed as was suggested in reviews.


sql/log_event.h:
  fixing comments
sql/slave.cc:
  fixing comments
sql/sql_repl.cc:
  fixing comments
parent a403c2f9
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -147,8 +147,10 @@ struct sql_ex_info
#define EXEC_LOAD_HEADER_LEN   4
#define DELETE_FILE_HEADER_LEN 4

/* amount of byte is contribution of replicaton protocol to a query
   received from user when the query goes to binlog */
/* 
  Max number of possible extra bytes in a replication event compared to a
  packet (i.e. a query) sent from client to master.
*/
#define MAX_LOG_EVENT_HEADER   (LOG_EVENT_HEADER_LEN + /* write_header */ \
				QUERY_HEADER_LEN     + /* write_data */   \
				NAME_LEN + 1)
+11 −2
Original line number Diff line number Diff line
@@ -2618,8 +2618,13 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
    SYSTEM_THREAD_SLAVE_SQL : SYSTEM_THREAD_SLAVE_IO; 
  thd->host_or_ip= "";
  my_net_init(&thd->net, 0);
/*
  Adding MAX_LOG_EVENT_HEADER_LEN to the max_allowed_packet on all
  slave threads, since a replication event can become this much larger
  than the corresponding packet (query) sent from client to master.
*/
  thd->variables.max_allowed_packet= global_system_variables.max_allowed_packet
    + MAX_LOG_EVENT_HEADER;  /* reentering secured through using global */
    + MAX_LOG_EVENT_HEADER;  /* note, incr over the global not session var */
  thd->net.read_timeout = slave_net_timeout;
  thd->master_access= ~(ulong)0;
  thd->priv_user = 0;
@@ -3156,7 +3161,11 @@ extern "C" pthread_handler_decl(handle_slave_io,arg)
			  mi->host, mi->port,
			  IO_RPL_LOG_NAME,
			  llstr(mi->master_log_pos,llbuff));
    /* post-net-init for slave */
  /*
    Adding MAX_LOG_EVENT_HEADER_LEN to the max_packet_size on the I/O
    thread, since a replication event can become this much larger than
    the corresponding packet (query) sent from client to master.
  */
    mysql->net.max_packet_size= thd->net.max_packet_size+= MAX_LOG_EVENT_HEADER;
  }
  else
+5 −1
Original line number Diff line number Diff line
@@ -420,7 +420,11 @@ impossible position";
    goto err;
  }
  packet->set("\0", 1, &my_charset_bin);
  /* dump thread  the whole header size of query_log_event */
  /*
    Adding MAX_LOG_EVENT_HEADER_LEN, since a binlog event can become
    this larger than the corresponding packet (query) sent 
    from client to master.
  */
  thd->variables.max_allowed_packet+= MAX_LOG_EVENT_HEADER;

  while (!net->error && net->vio != 0 && !thd->killed)