From efdb183c62be68f1a371237d1caac4347288f538 Mon Sep 17 00:00:00 2001 From: Krishnan Parthasarathi Date: Tue, 19 May 2015 14:48:01 +0530 Subject: 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: 1222065 Signed-off-by: Krishnan Parthasarathi Reviewed-on: http://review.gluster.org/10830 Reviewed-by: Atin Mukherjee Reviewed-by: Gaurav Kumar Garg Reviewed-by: Kaushal M Reviewed-on: http://review.gluster.org/10963 Tested-by: Gluster Build System Tested-by: NetBSD Build System Reviewed-by: Emmanuel Dreyfus --- rpc/rpc-lib/src/rpc-clnt.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'rpc') 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; -- cgit