|
|
21ab4e |
From 17e56e6699ac4521da7144107d9f496437a76e6a Mon Sep 17 00:00:00 2001
|
|
|
21ab4e |
From: Atin Mukherjee <amukherj@redhat.com>
|
|
|
21ab4e |
Date: Thu, 13 Apr 2017 13:20:18 +0530
|
|
|
21ab4e |
Subject: [PATCH 380/393] glusterd: fix glusterd_wait_for_blockers to go in
|
|
|
21ab4e |
infinite loop
|
|
|
21ab4e |
|
|
|
21ab4e |
In send_attach_req () conf->blockers is bumped up before
|
|
|
21ab4e |
rpc_clnt_submit however the same is bumped down twice, one from the
|
|
|
21ab4e |
callback and one from the negative ret handling which can very well be a
|
|
|
21ab4e |
possible case if the rpc submit fails.
|
|
|
21ab4e |
|
|
|
21ab4e |
>Reviewed-on: https://review.gluster.org/17055
|
|
|
21ab4e |
>Smoke: Gluster Build System <jenkins@build.gluster.org>
|
|
|
21ab4e |
>NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
|
|
|
21ab4e |
>CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
|
|
|
21ab4e |
>Reviewed-by: Jeff Darcy <jeff@pl.atyp.us>
|
|
|
21ab4e |
|
|
|
21ab4e |
Change-Id: Icb820694034cbfcb3d427911e192ac4a0f4540f6
|
|
|
21ab4e |
BUG: 1441946
|
|
|
21ab4e |
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
|
|
|
21ab4e |
Reviewed-on: https://code.engineering.redhat.com/gerrit/103636
|
|
|
21ab4e |
---
|
|
|
21ab4e |
xlators/mgmt/glusterd/src/glusterd-utils.c | 10 ++++------
|
|
|
21ab4e |
1 file changed, 4 insertions(+), 6 deletions(-)
|
|
|
21ab4e |
|
|
|
21ab4e |
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
|
|
|
21ab4e |
index 2adfb47..53ade93 100644
|
|
|
21ab4e |
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
|
|
|
21ab4e |
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
|
|
|
21ab4e |
@@ -4978,9 +4978,6 @@ send_attach_req (xlator_t *this, struct rpc_clnt *rpc, char *path, int op)
|
|
|
21ab4e |
ret = rpc_clnt_submit (rpc, &gd_brick_prog, op,
|
|
|
21ab4e |
my_callback, &iov, 1, NULL, 0, iobref,
|
|
|
21ab4e |
frame, NULL, 0, NULL, 0, NULL);
|
|
|
21ab4e |
- if (ret) {
|
|
|
21ab4e |
- --(conf->blockers);
|
|
|
21ab4e |
- }
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
|
|
|
21ab4e |
free_iobref:
|
|
|
21ab4e |
@@ -5419,13 +5416,12 @@ glusterd_restart_bricks (glusterd_conf_t *conf)
|
|
|
21ab4e |
gf_boolean_t node_quorum = _gf_false;
|
|
|
21ab4e |
|
|
|
21ab4e |
this = THIS;
|
|
|
21ab4e |
- GF_VALIDATE_OR_GOTO ("glusterd", this, out);
|
|
|
21ab4e |
+ GF_VALIDATE_OR_GOTO ("glusterd", this, return_block);
|
|
|
21ab4e |
|
|
|
21ab4e |
conf = this->private;
|
|
|
21ab4e |
- GF_VALIDATE_OR_GOTO (this->name, conf, out);
|
|
|
21ab4e |
+ GF_VALIDATE_OR_GOTO (this->name, conf, return_block);
|
|
|
21ab4e |
|
|
|
21ab4e |
++(conf->blockers);
|
|
|
21ab4e |
-
|
|
|
21ab4e |
ret = glusterd_get_quorum_cluster_counts (this, &active_count,
|
|
|
21ab4e |
&quorum_count);
|
|
|
21ab4e |
if (ret)
|
|
|
21ab4e |
@@ -5507,6 +5503,8 @@ glusterd_restart_bricks (glusterd_conf_t *conf)
|
|
|
21ab4e |
out:
|
|
|
21ab4e |
--(conf->blockers);
|
|
|
21ab4e |
conf->restart_done = _gf_true;
|
|
|
21ab4e |
+
|
|
|
21ab4e |
+return_block:
|
|
|
21ab4e |
return ret;
|
|
|
21ab4e |
}
|
|
|
21ab4e |
|
|
|
21ab4e |
--
|
|
|
21ab4e |
1.8.3.1
|
|
|
21ab4e |
|