summaryrefslogtreecommitdiff
path: root/sql/net_serv.cc
diff options
context:
space:
mode:
authorThayumanavar S <thayumanavar.x.sachithanantha@oracle.com>2016-07-25 06:43:16 +0100
committerThayumanavar S <thayumanavar.x.sachithanantha@oracle.com>2016-07-25 07:43:16 +0200
commit2674cf91c5dad871f59704685e77e76ba8f462cd (patch)
treedbf54c21ae572ad575dcbf0598779da93fabf3dc /sql/net_serv.cc
parentfd31eea949e5cbfccb97715bec62f6c63ece6010 (diff)
downloadmariadb-git-2674cf91c5dad871f59704685e77e76ba8f462cd.tar.gz
BUG#23703568 - IS CLIENT LIBRARY SUPPOSED TO RETRY EINTR INDEFINITELY OR NOT
Commit#ebd24626ca38e7fa1e3da2acdcf88540be70fabe obsoleted the THREAD and THREAD_SAFE_CLIENT preprocessor symbols. This is not removed in the sql/net_serv.cc thereby the code that retries on EINTR became dead code. Remove the THREAD_SAFE_CLIENT preprocessor directive form sql/net_serv.cc. Also check errno for EINTR only if there is an error in preceding read call.
Diffstat (limited to 'sql/net_serv.cc')
-rw-r--r--sql/net_serv.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/sql/net_serv.cc b/sql/net_serv.cc
index 8b44c7d443f..9c0c84bb292 100644
--- a/sql/net_serv.cc
+++ b/sql/net_serv.cc
@@ -1,4 +1,4 @@
-/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -676,13 +676,13 @@ net_real_write(NET *net,const uchar *packet, size_t len)
my_progname);
#endif /* EXTRA_DEBUG */
}
-#if defined(THREAD_SAFE_CLIENT) && !defined(MYSQL_SERVER)
+#ifndef MYSQL_SERVER
if (vio_errno(net->vio) == SOCKET_EINTR)
{
DBUG_PRINT("warning",("Interrupted write. Retrying..."));
continue;
}
-#endif /* defined(THREAD_SAFE_CLIENT) && !defined(MYSQL_SERVER) */
+#endif /* !defined(MYSQL_SERVER) */
net->error= 2; /* Close socket */
net->last_errno= (interrupted ? ER_NET_WRITE_INTERRUPTED :
ER_NET_ERROR_ON_WRITE);
@@ -887,8 +887,9 @@ my_real_read(NET *net, size_t *complen)
my_progname,vio_errno(net->vio));
#endif /* EXTRA_DEBUG */
}
-#if defined(THREAD_SAFE_CLIENT) && !defined(MYSQL_SERVER)
- if (vio_errno(net->vio) == SOCKET_EINTR)
+#ifndef MYSQL_SERVER
+ if (static_cast<long>(length) < 0 &&
+ vio_errno(net->vio) == SOCKET_EINTR)
{
DBUG_PRINT("warning",("Interrupted read. Retrying..."));
continue;