BUG#29083 - test suite times out on OS X 64bit - also in older releases

The "mysql client in mysqld"(which is used by
replication and federated) should use alarms instead of setting
socket timeout value if the rest of the server uses alarm. By
always calling 'my_net_set_write_timeout'
or 'net_set_read_timeout' when changing the timeout value(s), the
selection whether to use alarms or timeouts will be handled by
ifdef's in those two functions.

This is minimal backport of patch for BUG#26664, which was pushed
to 5.0 and up.

Affects 4.1 only.
parent 377f1870
...@@ -291,6 +291,11 @@ my_bool net_write_command(NET *net,unsigned char command, ...@@ -291,6 +291,11 @@ my_bool net_write_command(NET *net,unsigned char command,
int net_real_write(NET *net,const char *packet,unsigned long len); int net_real_write(NET *net,const char *packet,unsigned long len);
unsigned long my_net_read(NET *net); unsigned long my_net_read(NET *net);
#ifdef _global_h
void net_set_write_timeout(NET *net, uint timeout);
void net_set_read_timeout(NET *net, uint timeout);
#endif
/* /*
The following function is not meant for normal usage The following function is not meant for normal usage
Currently it's used internally by manager.c Currently it's used internally by manager.c
......
...@@ -1884,13 +1884,11 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, ...@@ -1884,13 +1884,11 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
/* If user set read_timeout, let it override the default */ /* If user set read_timeout, let it override the default */
if (mysql->options.read_timeout) if (mysql->options.read_timeout)
net->read_timeout= mysql->options.read_timeout; net_set_read_timeout(net, mysql->options.read_timeout);
vio_timeout(net->vio, 0, net->read_timeout);
/* If user set write_timeout, let it override the default */ /* If user set write_timeout, let it override the default */
if (mysql->options.write_timeout) if (mysql->options.write_timeout)
net->write_timeout= mysql->options.write_timeout; net_set_write_timeout(net, mysql->options.write_timeout);
vio_timeout(net->vio, 1, net->write_timeout);
if (mysql->options.max_allowed_packet) if (mysql->options.max_allowed_packet)
net->max_packet_size= mysql->options.max_allowed_packet; net->max_packet_size= mysql->options.max_allowed_packet;
......
...@@ -59,9 +59,6 @@ void kill_one_thread(THD *thd, ulong id); ...@@ -59,9 +59,6 @@ void kill_one_thread(THD *thd, ulong id);
bool net_request_file(NET* net, const char* fname); bool net_request_file(NET* net, const char* fname);
char* query_table_status(THD *thd,const char *db,const char *table_name); char* query_table_status(THD *thd,const char *db,const char *table_name);
void net_set_write_timeout(NET *net, uint timeout);
void net_set_read_timeout(NET *net, uint timeout);
#define x_free(A) { my_free((gptr) (A),MYF(MY_WME | MY_FAE | MY_ALLOW_ZERO_PTR)); } #define x_free(A) { my_free((gptr) (A),MYF(MY_WME | MY_FAE | MY_ALLOW_ZERO_PTR)); }
#define safeFree(x) { if(x) { my_free((gptr) x,MYF(0)); x = NULL; } } #define safeFree(x) { if(x) { my_free((gptr) x,MYF(0)); x = NULL; } }
#define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1)) #define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1))
......
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