From 67704349dff995436ed4db8c8da55648e40c7388 Mon Sep 17 00:00:00 2001 From: hari Date: Fri, 19 Feb 2016 13:43:48 +0530 Subject: Tier: making detach start fail when brick on hot tier is down backport of : http://review.gluster.org/#/c/13474/6 Currently detach tier start happens even when a hot brick is down this might lead to data loss. This patch prevents the detach tier start from being executed successfully if a brick in hot tier is down >Change-Id: I3b6047a44bd01b8a6887d41f799f64de6bf075ef >BUG: 1309999 >Signed-off-by: hari Change-Id: Ica0ae72f8e30156090be43e428545d684bdea36b BUG: 1314617 Signed-off-by: hari Reviewed-on: http://review.gluster.org/13602 Smoke: Gluster Build System Tested-by: hari gowtham NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: Dan Lambright --- tests/basic/tier/tierd_check.t | 6 ++++++ xlators/mgmt/glusterd/src/glusterd-brick-ops.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/basic/tier/tierd_check.t b/tests/basic/tier/tierd_check.t index 6edd2f3b795..9ef12d50211 100644 --- a/tests/basic/tier/tierd_check.t +++ b/tests/basic/tier/tierd_check.t @@ -53,4 +53,10 @@ TEST $CLI volume tier $V0 start force EXPECT_WITHIN $PROCESS_UP_TIMEOUT "0" tier_daemon_check +# To test fordetach start fail while the brick is down + +TEST pkill -f "$B0/hot/$V0" + +TEST ! $CLI volume tier $V0 detach start + cleanup diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c index 7801d059a3a..99b5261e9c1 100644 --- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c @@ -1806,7 +1806,8 @@ glusterd_remove_brick_validate_bricks (gf1_op_commands cmd, int32_t brick_count, } if (glusterd_is_local_brick (THIS, volinfo, brickinfo)) { - if (cmd == GF_OP_CMD_START && + if (((cmd == GF_OP_CMD_START) || + (cmd == GF_OP_CMD_DETACH_START)) && brickinfo->status != GF_BRICK_STARTED) { snprintf (msg, sizeof (msg), "Found stopped " "brick %s", brick); -- cgit