diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2013-05-15 12:09:28 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-05-31 11:22:24 -0700 |
commit | 9e974f9311869fb317c9c691ed09e7dd18047248 (patch) | |
tree | 598cbff63e2a10a3eef4a3b8e4128331f5b5b810 /rpc/rpc-transport/socket/src/socket.c | |
parent | 114c02e54abae9b3cbf0f84bc48132bf1535118e (diff) |
socket: Prevent extra logging in socket_rwv
Problem:
If the socket is not even connected socket_rwv fails
and the error log comes every 3 seconds for every
re-connect.
Fix:
Prevent this error log if the socket is not even
connected.
Change-Id: I963f1345c4b6779dd5491948f7f5c4357a507b67
BUG: 963088
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/5008
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'rpc/rpc-transport/socket/src/socket.c')
-rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index d9d21538973..97c0dc57d41 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -147,15 +147,8 @@ typedef int SSL_trinary_func (SSL *, void *, int); &in->pending_vector, \ &in->pending_count, \ &bytes_read); \ - if (ret == -1) { \ - if (priv->read_fail_log) \ - gf_log (this->name, GF_LOG_WARNING, \ - "reading from socket failed." \ - "Error (%s), peer (%s)", \ - strerror (errno), \ - this->peerinfo.identifier); \ + if (ret == -1) \ break; \ - } \ __socket_proto_update_priv_after_read (priv, ret, bytes_read); \ } @@ -424,6 +417,19 @@ out: return ret; } +static gf_boolean_t +__does_socket_rwv_error_need_logging (socket_private_t *priv, int write) +{ + int read = !write; + + if (priv->connected == -1) /* Didn't even connect, of course it fails */ + return _gf_false; + + if (read && (priv->read_fail_log == _gf_false)) + return _gf_false; + + return _gf_true; +} /* * return value: @@ -507,12 +513,15 @@ __socket_rwv (rpc_transport_t *this, struct iovec *vector, int count, if (errno == EINTR) continue; - if (write || (!write && priv->read_fail_log)) + if (__does_socket_rwv_error_need_logging (priv, + write)) { gf_log (this->name, GF_LOG_WARNING, "%s on %s failed (%s)", write ? "writev":"readv", this->peerinfo.identifier, strerror (errno)); + } + if (priv->use_ssl) { ssl_dump_error_stack(this->name); } @@ -1953,17 +1962,8 @@ __socket_proto_state_machine (rpc_transport_t *this, &in->pending_vector, &in->pending_count, NULL); - if (ret == -1) { - if (priv->read_fail_log == 1) { - gf_log (this->name, - ((priv->connected == 1) ? - GF_LOG_WARNING : GF_LOG_DEBUG), - "reading from socket failed. Error (%s)" - ", peer (%s)", strerror (errno), - this->peerinfo.identifier); - } + if (ret == -1) goto out; - } if (ret > 0) { gf_log (this->name, GF_LOG_TRACE, "partial " |