summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAtin Mukherjee <amukherj@redhat.com>2016-10-17 16:08:41 +0530
committerAtin Mukherjee <amukherj@redhat.com>2016-10-21 02:17:13 -0700
commit1e6db41c3a1969474ad6a6831815b0c0de378877 (patch)
tree23e019ae26161d863553ede13160ad9d0f395ede
parent9d6133cfb9f040d21de9d8d57c1478186dde9084 (diff)
glusterd: set the brickinfo->port before spawning the bricks
As of now, when glusterd spawns a brick process, post spawning, the brickinfo's port is set. The side effect of this is it opens up an window where the pmap_signin event can be initiated by the brick to glusterd and glusterd fails to update signed_in flag since the brickinfo port is still 0 and the comparison of port and brickinfo->port fails. As a solution, set the brickinfo->port post pmap_registry_alloc and if the brick spawn fails reset it to 0. This logic applies for rdma port too. >Reviewed-on: http://review.gluster.org/15655 >Smoke: Gluster Build System <jenkins@build.gluster.org> >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> >CentOS-regression: Gluster Build System <jenkins@build.gluster.org> >Reviewed-by: Samikshan Bairagya <samikshan@gmail.com> >Reviewed-by: Jeff Darcy <jdarcy@redhat.com> Change-Id: I00a13d4c6d6809ebd19a972aa13e71ee5eac7e35 BUG: 1386338 Signed-off-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-on: http://review.gluster.org/15679 Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Samikshan Bairagya <samikshan@gmail.com>
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index 0011cac0078..7fdb45a043b 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -1916,6 +1916,10 @@ retry:
runner_add_arg (&runner, "--mem-accounting");
runner_log (&runner, "", 0, "Starting GlusterFS");
+
+ brickinfo->port = port;
+ brickinfo->rdma_port = rdma_port;
+
if (wait) {
synclock_unlock (&priv->big_lock);
ret = runner_run (&runner);
@@ -1945,11 +1949,11 @@ retry:
ret = runner_run_nowait (&runner);
}
- if (ret)
+ if (ret) {
+ brickinfo->port = 0;
+ brickinfo->rdma_port = 0;
goto out;
-
- brickinfo->port = port;
- brickinfo->rdma_port = rdma_port;
+ }
connect:
ret = glusterd_brick_connect (volinfo, brickinfo, socketpath);