Below is the list of changes that have just been committed into a local
5.1 repository of msvensson. When msvensson 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, 2007-05-24 20:43:12+02:00, msvensson@stripped +11 -0
Merge pilot.blaudden:/home/msvensson/mysql/bug26664/my50-bug26664
into pilot.blaudden:/home/msvensson/mysql/bug26664/my51-bug26664
MERGE: 1.1810.2957.1
include/mysql_com.h@stripped, 2007-05-24 20:38:48+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.100.1.13
include/violite.h@stripped, 2007-05-24 20:38:48+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.46.2.5
libmysql/libmysql.c@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.233.14.1
server-tools/instance-manager/mysql_connection.cc@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.14.1.6
sql-common/client.c@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.83.17.1
sql/mysql_priv.h@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.290.118.1
sql/net_serv.cc@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.88.5.1
sql/set_var.cc@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.125.28.1
sql/sql_parse.cc@stripped, 2007-05-24 20:43:10+02:00, msvensson@stripped +2 -8
Merge 5.0->5.1
MERGE: 1.426.153.1
sql/sql_repl.cc@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.133.8.1
vio/viosocket.c@stripped, 2007-05-24 20:38:49+02:00, msvensson@stripped +0 -0
Auto merged
MERGE: 1.37.1.8
# 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: msvensson
# Host: pilot.blaudden
# Root: /home/msvensson/mysql/bug26664/my51-bug26664/RESYNC
--- 1.120/include/mysql_com.h 2007-04-03 13:13:24 +02:00
+++ 1.121/include/mysql_com.h 2007-05-24 20:38:48 +02:00
@@ -353,6 +353,9 @@ my_bool net_write_command(NET *net,unsig
int net_real_write(NET *net,const char *packet,unsigned long len);
unsigned long my_net_read(NET *net);
+void my_net_set_write_timeout(NET *net, uint timeout);
+void my_net_set_read_timeout(NET *net, uint timeout);
+
/*
The following function is not meant for normal usage
Currently it's used internally by manager.c
--- 1.54/include/violite.h 2007-03-28 15:57:24 +02:00
+++ 1.55/include/violite.h 2007-05-24 20:38:48 +02:00
@@ -88,7 +88,6 @@ my_bool vio_peer_addr(Vio* vio, char *bu
/* Remotes in_addr */
void vio_in_addr(Vio *vio, struct in_addr *in);
my_bool vio_poll_read(Vio *vio,uint timeout);
-void vio_timeout(Vio *vio,uint which, uint timeout);
#ifdef HAVE_OPENSSL
#include <openssl/opensslv.h>
--- 1.275/libmysql/libmysql.c 2007-04-13 00:56:19 +02:00
+++ 1.276/libmysql/libmysql.c 2007-05-24 20:38:49 +02:00
@@ -67,8 +67,6 @@
ulong net_buffer_length=8192;
ulong max_allowed_packet= 1024L*1024L*1024L;
-ulong net_read_timeout= CLIENT_NET_READ_TIMEOUT;
-ulong net_write_timeout= CLIENT_NET_WRITE_TIMEOUT;
#ifdef EMBEDDED_LIBRARY
@@ -1522,8 +1520,8 @@ my_bool STDCALL mysql_embedded(void)
void my_net_local_init(NET *net)
{
net->max_packet= (uint) net_buffer_length;
- net->read_timeout= (uint) net_read_timeout;
- net->write_timeout=(uint) net_write_timeout;
+ my_net_set_read_timeout(net, CLIENT_NET_READ_TIMEOUT);
+ my_net_set_write_timeout(net, CLIENT_NET_WRITE_TIMEOUT);
net->retry_count= 1;
net->max_packet_size= max(net_buffer_length, max_allowed_packet);
}
--- 1.510/sql/mysql_priv.h 2007-05-23 05:52:29 +02:00
+++ 1.511/sql/mysql_priv.h 2007-05-24 20:38:49 +02:00
@@ -88,9 +88,6 @@ void sql_kill(THD *thd, ulong id, bool o
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))
--- 1.110/sql/net_serv.cc 2007-04-17 13:41:14 +02:00
+++ 1.111/sql/net_serv.cc 2007-05-24 20:38:49 +02:00
@@ -609,10 +609,10 @@ net_real_write(NET *net,const char *pack
#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 *pack
#if !defined(__WIN__)
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 */
@@ -1120,9 +1120,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
@@ -1132,9 +1132,9 @@ void net_set_read_timeout(NET *net, uint
}
-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
--- 1.668/sql/sql_parse.cc 2007-05-15 16:03:51 +02:00
+++ 1.669/sql/sql_parse.cc 2007-05-24 20:43:10 +02:00
@@ -621,7 +621,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
@@ -653,7 +653,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
--- 1.132/sql-common/client.c 2007-04-16 16:08:28 +02:00
+++ 1.133/sql-common/client.c 2007-05-24 20:38:49 +02:00
@@ -2047,13 +2047,11 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,cons
/* If user set read_timeout, let it override the default */
if (mysql->options.read_timeout)
- net->read_timeout= mysql->options.read_timeout;
- vio_timeout(net->vio, 0, net->read_timeout);
+ my_net_set_read_timeout(net, mysql->options.read_timeout);
/* If user set write_timeout, let it override the default */
if (mysql->options.write_timeout)
- net->write_timeout= mysql->options.write_timeout;
- vio_timeout(net->vio, 1, net->write_timeout);
+ my_net_set_write_timeout(net, mysql->options.write_timeout);
if (mysql->options.max_allowed_packet)
net->max_packet_size= mysql->options.max_allowed_packet;
--- 1.233/sql/set_var.cc 2007-05-15 16:03:51 +02:00
+++ 1.234/sql/set_var.cc 2007-05-24 20:38:49 +02:00
@@ -902,14 +902,14 @@ static int check_completion_type(THD *th
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)
--- 1.28/server-tools/instance-manager/mysql_connection.cc 2007-02-23 12:27:04 +01:00
+++ 1.29/server-tools/instance-manager/mysql_connection.cc 2007-05-24 20:38:49 +02:00
@@ -62,8 +62,8 @@ C_MODE_START
void my_net_local_init(NET *net)
{
net->max_packet= net_buffer_length;
- net->read_timeout= net_read_timeout;
- net->write_timeout= net_write_timeout;
+ my_net_set_read_timeout(net, (uint)net_read_timeout);
+ my_net_set_write_timeout(net, (uint)net_write_timeout);
net->retry_count= net_retry_count;
net->max_packet_size= max_allowed_packet;
}
--- 1.168/sql/sql_repl.cc 2007-04-27 19:03:51 +02:00
+++ 1.169/sql/sql_repl.cc 2007-05-24 20:38:49 +02:00
@@ -96,7 +96,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
@@ -140,7 +140,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)
--- 1.49/vio/viosocket.c 2006-12-23 20:20:34 +01:00
+++ 1.50/vio/viosocket.c 2007-05-24 20:38:49 +02:00
@@ -203,13 +203,14 @@ int vio_fastsend(Vio * vio __attribute__
{
#ifdef __WIN__
BOOL nodelay= 1;
- r= setsockopt(vio->sd, IPPROTO_TCP, TCP_NODELAY, (const char*) &nodelay,
- sizeof(nodelay));
#else
int nodelay = 1;
- r= setsockopt(vio->sd, IPPROTO_TCP, TCP_NODELAY, (void*) &nodelay,
+#endif
+
+ r= setsockopt(vio->sd, IPPROTO_TCP, TCP_NODELAY,
+ IF_WIN(const char*, void*) &nodelay,
sizeof(nodelay));
-#endif /* __WIN__ */
+
}
if (r)
{
@@ -379,28 +380,39 @@ my_bool vio_poll_read(Vio *vio,uint time
void vio_timeout(Vio *vio, uint which, uint timeout)
{
-/* TODO: some action should be taken if socket timeouts are not supported. */
#if defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO)
+ int r;
+ DBUG_ENTER("vio_timeout");
+ {
#ifdef __WIN__
-
- /* Windows expects time in milliseconds as int. */
+ /* Windows expects time in milliseconds as int */
int wait_timeout= (int) timeout * 1000;
-
-#else /* ! __WIN__ */
-
+#else
/* POSIX specifies time as struct timeval. */
struct timeval wait_timeout;
wait_timeout.tv_sec= timeout;
wait_timeout.tv_usec= 0;
+#endif
-#endif /* ! __WIN__ */
+ r= setsockopt(vio->sd, SOL_SOCKET, which ? SO_SNDTIMEO : SO_RCVTIMEO,
+ IF_WIN(const char*, const void*)&wait_timeout,
+ sizeof(wait_timeout));
- /* TODO: return value should be checked. */
- (void) setsockopt(vio->sd, SOL_SOCKET, which ? SO_SNDTIMEO : SO_RCVTIMEO,
- (char*) &wait_timeout, sizeof(wait_timeout));
+ }
-#endif /* defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO) */
+#ifndef DBUG_OFF
+ if (r != 0)
+ DBUG_PRINT("error", ("setsockopt failed: %d, errno: %d", r, socket_errno));
+#endif
+
+ DBUG_VOID_RETURN;
+#else
+/*
+ Platforms not suporting setting of socket timeout should either use
+ thr_alarm or just run without read/write timeout(s)
+*/
+#endif
}
| Thread |
|---|
| • bk commit into 5.1 tree (msvensson:1.2504) | msvensson | 24 May |