rpc: disable client on disconnection from rebalance

Problem:
glusterd rpc code path attempts to reconnect to rebalance process
via the reconnect timer even after the rebalance process disconnection

Solution:
Set the clnt->disabled flag to 1 to avoid reconnection and cause
the clnt object to be unref'd

Change-Id: I4e38eaef45d2fdea86d25e9dff9f1af0cd29cf66
BUG: 1484225
Signed-off-by: Milind Changire <mchangir@redhat.com>
Reviewed-on: https://review.gluster.org/18093
Smoke: Gluster Build System <jenkins@build.gluster.org>
Tested-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
This commit is contained in:
Milind Changire 2017-08-23 10:10:13 +05:30 committed by Raghavendra G
parent 2c1ddc55d1
commit 5b14c11d3c

View File

@ -478,6 +478,10 @@ rpc_clnt_reconnect_cleanup (rpc_clnt_connection_t *conn)
{
if (conn->reconnect) {
/* setting disabled = 1 helps to stop rearming of the
* reconnection timer and unref the rpc_clnt_t object
*/
clnt->disabled = 1;
ret = gf_timer_call_cancel (clnt->ctx, conn->reconnect);
if (!ret) {
reconnect_unref = _gf_true;