From a9f660bc9d2d7c87b3306a35a2088532de000015 Mon Sep 17 00:00:00 2001 From: Atin Mukherjee Date: Wed, 5 Oct 2016 14:59:51 +0530 Subject: glusterd: daemon restart logic should adhere server side quorum Just like brick processes, other daemon services should also follow the same logic of quorum checks to see if a particular service needs to come up if glusterd is restarted or the incoming friend add/update request is received (in glusterd_restart_bricks () function) Change-Id: I54a1fbdaa1571cc45eed627181b81463fead47a3 BUG: 1383893 Signed-off-by: Atin Mukherjee Reviewed-on: https://review.gluster.org/15626 NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Smoke: Gluster Build System Reviewed-by: Prashanth Pai --- xlators/mgmt/glusterd/src/glusterd-utils.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'xlators/mgmt') diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index a77cc674e63..5f9098f3e9d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -4923,10 +4923,6 @@ glusterd_restart_bricks (glusterd_conf_t *conf) cds_list_for_each_entry (volinfo, &conf->volumes, vol_list) { if (volinfo->status != GLUSTERD_STATUS_STARTED) continue; - if (start_svcs == _gf_false) { - start_svcs = _gf_true; - glusterd_svcs_manager (NULL); - } gf_msg_debug (this->name, 0, "starting the volume %s", volinfo->volname); @@ -4949,6 +4945,11 @@ glusterd_restart_bricks (glusterd_conf_t *conf) */ continue; } else { + if (start_svcs == _gf_false) { + start_svcs = _gf_true; + glusterd_svcs_manager (NULL); + } + cds_list_for_each_entry (brickinfo, &volinfo->bricks, brick_list) { glusterd_brick_start (volinfo, brickinfo, @@ -4961,8 +4962,8 @@ glusterd_restart_bricks (glusterd_conf_t *conf) cds_list_for_each_entry (volinfo, &snap->volumes, vol_list) { if (volinfo->status != GLUSTERD_STATUS_STARTED) continue; - /* Check the quorum, if quorum is not met, don't start the - bricks + /* Check the quorum, if quorum is not met, don't start + * the bricks */ ret = check_quorum_for_brick_start (volinfo, node_quorum); -- cgit