diff options
author | unknown <msvensson@pilot.blaudden> | 2007-05-24 11:21:27 +0200 |
---|---|---|
committer | unknown <msvensson@pilot.blaudden> | 2007-05-24 11:21:27 +0200 |
commit | e8faa0b701d23137ccdc5c5fa6f68fd2b131024e (patch) | |
tree | b344506ca47d428ac52b3ed42e0688a171e767a0 /sql | |
parent | f0d323d31b4e2a590fb02fdf26bf99e7a5308aad (diff) | |
download | mariadb-git-e8faa0b701d23137ccdc5c5fa6f68fd2b131024e.tar.gz |
Bug#26664 test suite times out on OS X 64bit
- 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 'my_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.
- Move declaration of 'vio_timeout' into "vio_priv.h"
include/mysql_com.h:
Move the net_set_*_timeout function declarations to mysql_com.h and
rename to my_net_set_*_timeout to avoid name clashes
include/violite.h:
Move declaration of 'vio_timeout' to vio_priv.h (to make
the function as private as possible)
libmysql/libmysql.c:
Use my_net_read_timeout or my_net_write_timeout when setting
the timeouts. Move the global variables for my_net_read/my_write_timeout
into the only place where they are used. Thus removing them...
server-tools/instance-manager/mysql_connection.cc:
Use my_net_read_timeout or my_net_write_timeout when setting the timeouts
sql-common/client.c:
Use my_net_read_timeout or my_net_write_timeout when setting the timeouts
sql/mysql_priv.h:
Move the net_set_*_timeout function declarations to mysql_com.h
sql/net_serv.cc:
No need to cast the net->write_timeout value from "uint" to "uint"
sql/set_var.cc:
Rename net_set_*_timeout to my_net_set_*_timeout
sql/sql_client.cc:
Use my_net_read_timeout or my_net_write_timeout when setting the timeouts
sql/sql_parse.cc:
Rename net_set_*_timeout to my_net_set_*_timeout
sql/sql_repl.cc:
Rename net_set_*_timeout to my_net_set_*_timeout
vio/vio_priv.h:
Move declaration of 'vio_timeout' to vio_priv.h
vio/viosocket.c:
Cleanup 'vio_timeout'
- Use "const void*" on POSIX and "const char*" on windows for
setsockopt
- Add DBUG_PRINT's
- Add comment about why we don't have an implementation of
vio_timeout for platforms not supporting SO_SNDTIMEO or SO_RCVTIMEO
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysql_priv.h | 3 | ||||
-rw-r--r-- | sql/net_serv.cc | 16 | ||||
-rw-r--r-- | sql/set_var.cc | 4 | ||||
-rw-r--r-- | sql/sql_client.cc | 7 | ||||
-rw-r--r-- | sql/sql_parse.cc | 12 | ||||
-rw-r--r-- | sql/sql_repl.cc | 4 |
6 files changed, 23 insertions, 23 deletions
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 39f115f6fd5..b5bab84343d 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -89,9 +89,6 @@ void kill_one_thread(THD *thd, ulong id, bool only_kill_query); bool net_request_file(NET* net, const char* fname); 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 safeFree(x) { if(x) { my_free((gptr) x,MYF(0)); x = NULL; } } #define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1)) diff --git a/sql/net_serv.cc b/sql/net_serv.cc index ef929bc67f0..4b79e411a53 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -609,10 +609,10 @@ net_real_write(NET *net,const char *packet,ulong len) #ifndef NO_ALARM thr_alarm_init(&alarmed); if (net_blocking) - thr_alarm(&alarmed,(uint) net->write_timeout,&alarm_buff); + thr_alarm(&alarmed, net->write_timeout, &alarm_buff); #else alarmed=0; - /* Write timeout is set in net_set_write_timeout */ + /* Write timeout is set in my_net_set_write_timeout */ #endif /* NO_ALARM */ pos=(char*) packet; end=pos+len; @@ -624,7 +624,7 @@ net_real_write(NET *net,const char *packet,ulong len) #if (!defined(__WIN__) && !defined(__EMX__) && !defined(OS2)) if ((interrupted || length==0) && !thr_alarm_in_use(&alarmed)) { - if (!thr_alarm(&alarmed,(uint) net->write_timeout,&alarm_buff)) + if (!thr_alarm(&alarmed, net->write_timeout, &alarm_buff)) { /* Always true for client */ my_bool old_mode; while (vio_blocking(net->vio, TRUE, &old_mode) < 0) @@ -805,7 +805,7 @@ my_real_read(NET *net, ulong *complen) if (net_blocking) thr_alarm(&alarmed,net->read_timeout,&alarm_buff); #else - /* Read timeout is set in net_set_read_timeout */ + /* Read timeout is set in my_net_set_read_timeout */ #endif /* NO_ALARM */ pos = net->buff + net->where_b; /* net->packet -4 */ @@ -1117,9 +1117,9 @@ my_net_read(NET *net) } -void net_set_read_timeout(NET *net, uint timeout) +void my_net_set_read_timeout(NET *net, uint timeout) { - DBUG_ENTER("net_set_read_timeout"); + DBUG_ENTER("my_net_set_read_timeout"); DBUG_PRINT("enter", ("timeout: %d", timeout)); net->read_timeout= timeout; #ifdef NO_ALARM @@ -1129,9 +1129,9 @@ void net_set_read_timeout(NET *net, uint timeout) } -void net_set_write_timeout(NET *net, uint timeout) +void my_net_set_write_timeout(NET *net, uint timeout) { - DBUG_ENTER("net_set_write_timeout"); + DBUG_ENTER("my_net_set_write_timeout"); DBUG_PRINT("enter", ("timeout: %d", timeout)); net->write_timeout= timeout; #ifdef NO_ALARM diff --git a/sql/set_var.cc b/sql/set_var.cc index 46c2a775d8a..bc3cc7b0688 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1282,14 +1282,14 @@ static int check_completion_type(THD *thd, set_var *var) static void fix_net_read_timeout(THD *thd, enum_var_type type) { if (type != OPT_GLOBAL) - net_set_read_timeout(&thd->net, thd->variables.net_read_timeout); + my_net_set_read_timeout(&thd->net, thd->variables.net_read_timeout); } static void fix_net_write_timeout(THD *thd, enum_var_type type) { if (type != OPT_GLOBAL) - net_set_write_timeout(&thd->net, thd->variables.net_write_timeout); + my_net_set_write_timeout(&thd->net, thd->variables.net_write_timeout); } static void fix_net_retry_count(THD *thd, enum_var_type type) diff --git a/sql/sql_client.cc b/sql/sql_client.cc index d6f1183806e..032a2e26e3a 100644 --- a/sql/sql_client.cc +++ b/sql/sql_client.cc @@ -28,8 +28,11 @@ void my_net_local_init(NET *net) { #ifndef EMBEDDED_LIBRARY net->max_packet= (uint) global_system_variables.net_buffer_length; - net->read_timeout= (uint) global_system_variables.net_read_timeout; - net->write_timeout=(uint) global_system_variables.net_write_timeout; + + my_net_set_read_timeout(net, (uint)global_system_variables.net_read_timeout); + my_net_set_write_timeout(net, + (uint)global_system_variables.net_write_timeout); + net->retry_count= (uint) global_system_variables.net_retry_count; net->max_packet_size= max(global_system_variables.net_buffer_length, global_system_variables.max_allowed_packet); diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 1b8bfd38fc4..8077adab452 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1137,8 +1137,8 @@ pthread_handler_t handle_one_connection(void *arg) net->no_send_error= 0; /* Use "connect_timeout" value during connection phase */ - net_set_read_timeout(net, connect_timeout); - net_set_write_timeout(net, connect_timeout); + my_net_set_read_timeout(net, connect_timeout); + my_net_set_write_timeout(net, connect_timeout); if ((error=check_connection(thd))) { // Wrong permissions @@ -1181,8 +1181,8 @@ pthread_handler_t handle_one_connection(void *arg) } /* Connect completed, set read/write timeouts back to tdefault */ - net_set_read_timeout(net, thd->variables.net_read_timeout); - net_set_write_timeout(net, thd->variables.net_write_timeout); + my_net_set_read_timeout(net, thd->variables.net_read_timeout); + my_net_set_write_timeout(net, thd->variables.net_write_timeout); while (!net->error && net->vio != 0 && !(thd->killed == THD::KILL_CONNECTION)) @@ -1531,7 +1531,7 @@ bool do_command(THD *thd) the client, the connection is closed or "net_wait_timeout" number of seconds has passed */ - net_set_read_timeout(net, thd->variables.net_wait_timeout); + my_net_set_read_timeout(net, thd->variables.net_wait_timeout); thd->clear_error(); // Clear error message @@ -1563,7 +1563,7 @@ bool do_command(THD *thd) } /* Restore read timeout value */ - net_set_read_timeout(net, thd->variables.net_read_timeout); + my_net_set_read_timeout(net, thd->variables.net_read_timeout); /* packet_length contains length of data, as it was stored in packet diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index b451c612398..86ededd5587 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -94,7 +94,7 @@ static int send_file(THD *thd) the job */ old_timeout= net->read_timeout; - net_set_read_timeout(net, thd->variables.net_wait_timeout); + my_net_set_read_timeout(net, thd->variables.net_wait_timeout); /* We need net_flush here because the client will not know it needs to send @@ -138,7 +138,7 @@ static int send_file(THD *thd) error = 0; err: - net_set_read_timeout(net, old_timeout); + my_net_set_read_timeout(net, old_timeout); if (fd >= 0) (void) my_close(fd, MYF(0)); if (errmsg) |