mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
5.5 merge
This commit is contained in:
47
sql/slave.cc
47
sql/slave.cc
@ -166,6 +166,37 @@ static bool send_show_master_info_header(THD *thd, bool full,
|
||||
size_t gtid_pos_length);
|
||||
static bool send_show_master_info_data(THD *thd, Master_info *mi, bool full,
|
||||
String *gtid_pos);
|
||||
/*
|
||||
Function to set the slave's max_allowed_packet based on the value
|
||||
of slave_max_allowed_packet.
|
||||
|
||||
@in_param thd Thread handler for slave
|
||||
@in_param mysql MySQL connection handle
|
||||
*/
|
||||
|
||||
static void set_slave_max_allowed_packet(THD *thd, MYSQL *mysql)
|
||||
{
|
||||
DBUG_ENTER("set_slave_max_allowed_packet");
|
||||
// thd and mysql must be valid
|
||||
DBUG_ASSERT(thd && mysql);
|
||||
|
||||
thd->variables.max_allowed_packet= slave_max_allowed_packet;
|
||||
thd->net.max_packet_size= slave_max_allowed_packet;
|
||||
/*
|
||||
Adding MAX_LOG_EVENT_HEADER_LEN to the max_packet_size on the I/O
|
||||
thread and the mysql->option max_allowed_packet, since a
|
||||
replication event can become this much larger than
|
||||
the corresponding packet (query) sent from client to master.
|
||||
*/
|
||||
thd->net.max_packet_size+= MAX_LOG_EVENT_HEADER;
|
||||
/*
|
||||
Skipping the setting of mysql->net.max_packet size to slave
|
||||
max_allowed_packet since this is done during mysql_real_connect.
|
||||
*/
|
||||
mysql->options.max_allowed_packet=
|
||||
slave_max_allowed_packet+MAX_LOG_EVENT_HEADER;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
/*
|
||||
Find out which replications threads are running
|
||||
@ -2754,12 +2785,6 @@ static int init_slave_thread(THD* thd, Master_info *mi,
|
||||
thd->system_thread = (thd_type == SLAVE_THD_SQL) ?
|
||||
SYSTEM_THREAD_SLAVE_SQL : SYSTEM_THREAD_SLAVE_IO;
|
||||
thd->security_ctx->skip_grants();
|
||||
/*
|
||||
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= slave_max_allowed_packet;
|
||||
thd->slave_thread= 1;
|
||||
thd->connection_name= mi->connection_name;
|
||||
thd->enable_slow_log= opt_log_slow_slave_statements;
|
||||
@ -3578,14 +3603,6 @@ pthread_handler_t handle_slave_io(void *arg)
|
||||
"replication starts at GTID position '%s'",
|
||||
mi->user, mi->host, mi->port, tmp.c_ptr_safe());
|
||||
}
|
||||
|
||||
/*
|
||||
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.
|
||||
*/
|
||||
thd->net.max_packet_size= slave_max_allowed_packet;
|
||||
mysql->net.max_packet_size= thd->net.max_packet_size+= MAX_LOG_EVENT_HEADER;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -5419,7 +5436,7 @@ static int connect_to_master(THD* thd, MYSQL* mysql, Master_info* mi,
|
||||
char llbuff[22];
|
||||
my_bool my_true= 1;
|
||||
DBUG_ENTER("connect_to_master");
|
||||
|
||||
set_slave_max_allowed_packet(thd, mysql);
|
||||
#ifndef DBUG_OFF
|
||||
mi->events_till_disconnect = disconnect_slave_event_count;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user