List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:November 12 2006 6:02pm
Subject:bk commit into 4.1 tree (aelkin:1.2549) BUG#19402
View as plain text  
Below is the list of changes that have just been committed into a local
4.1 repository of elkin. When elkin does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-11-12 20:01:58+02:00, aelkin@stripped +3 -0
  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@stripped, 2006-11-12 20:01:55+02:00, aelkin@stripped +4 -2
    fixing comments

  sql/slave.cc@stripped, 2006-11-12 20:01:56+02:00, aelkin@stripped +11 -2
    fixing comments

  sql/sql_repl.cc@stripped, 2006-11-12 20:01:56+02:00, aelkin@stripped +5 -1
    fixing comments

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	aelkin
# Host:	dsl-hkibras-fe30f900-107.dhcp.inet.fi
# Root:	/home/elkin/MySQL/TEAM/BARE/mysql-4.1-rpl

--- 1.100/sql/log_event.h	2006-11-12 20:02:03 +02:00
+++ 1.101/sql/log_event.h	2006-11-12 20:02:03 +02:00
@@ -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)

--- 1.283/sql/slave.cc	2006-11-12 20:02:03 +02:00
+++ 1.284/sql/slave.cc	2006-11-12 20:02:03 +02:00
@@ -2618,8 +2618,13 @@ static int init_slave_thread(THD* thd, S
     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 @@ slave_begin:
 			  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

--- 1.139/sql/sql_repl.cc	2006-11-12 20:02:03 +02:00
+++ 1.140/sql/sql_repl.cc	2006-11-12 20:02:03 +02:00
@@ -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)
Thread
bk commit into 4.1 tree (aelkin:1.2549) BUG#19402Andrei Elkin12 Nov