diff options
author | Krishnan Parthasarathi <kparthas@redhat.com> | 2015-05-19 14:48:01 +0530 |
---|---|---|
committer | Kaushal M <kaushal@redhat.com> | 2015-05-28 01:58:44 -0700 |
commit | 8461bf0b5008a3ddcc7b675caa9aa7c3d6473048 (patch) | |
tree | bdf63cbf61ce7539f4b8d93a3b47b7dcf9436d2e /rpc | |
parent | 37f365843bed87728048da1f56de22290f5cb70f (diff) |
glusterd: fix repeated connection to nfssvc failed msgs
... and disable reconnect timer on rpc_clnt_disconnect.
Root Cause
----------
gluster-NFS service wouldn't be started if there are no
started volumes that have nfs service enabled for them.
Before this fix we would initiate a connect even when
the gluster-NFS service wasn't (re)started. Compounding
that glusterd_conn_disconnect doesn't disable reconnect
timer. So, it is possible that the reconnect timer was
in execution when the timer event was attempted to be
removed.
Change-Id: Iadcb5cff9eafefa95eaf3a1a9413eeb682d3aaac
BUG: 1222378
Signed-off-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: http://review.gluster.org/10830
Tested-by: NetBSD Build System
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-by: Gaurav Kumar Garg <ggarg@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Tested-by: Kaushal M <kaushal@redhat.com>
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-lib/src/rpc-clnt.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c index 264a3120a46..db99484cb81 100644 --- a/rpc/rpc-lib/src/rpc-clnt.c +++ b/rpc/rpc-lib/src/rpc-clnt.c @@ -1108,6 +1108,11 @@ rpc_clnt_start (struct rpc_clnt *rpc) conn = &rpc->conn; + pthread_mutex_lock (&conn->lock); + { + rpc->disabled = 0; + } + pthread_mutex_unlock (&conn->lock); rpc_clnt_reconnect (conn); return 0; @@ -1758,6 +1763,7 @@ rpc_clnt_disconnect (struct rpc_clnt *rpc) pthread_mutex_lock (&conn->lock); { + rpc->disabled = 1; if (conn->timer) { gf_timer_call_cancel (rpc->ctx, conn->timer); conn->timer = NULL; |