summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Lambright <dlambrig@redhat.com>2015-10-01 11:05:25 -0400
committerDan Lambright <dlambrig@redhat.com>2015-11-16 05:18:55 -0800
commit3a13092cb001b1a998268a2cdb0056615ece1d54 (patch)
tree9e188813a0a39eeaa24bcb4e1960748e1e79e207
parent24f2173e391a517901750138db95bff3f0bd026e (diff)
cluster/tier: Disallow detach commit when detach in progress
1. Check if detach is running, disallow detach commit if so. 2. Cleanup shutdown of tier daemon on detach: do not rerun fix-layout, do not send incorrect status back to glusterd. Change-Id: I97202f748773c1176396a4ffd32a4c7fa9b9c1bc BUG: 1264441 Signed-off-by: Dan Lambright <dlambrig@redhat.com> Reviewed-on: http://review.gluster.org/12272 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Joseph Fernandes
-rw-r--r--xlators/cluster/dht/src/dht-rebalance.c3
-rw-r--r--xlators/cluster/dht/src/tier.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-brick-ops.c24
3 files changed, 25 insertions, 4 deletions
diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c
index 2163b9b1dd5..f1b0ecfeef0 100644
--- a/xlators/cluster/dht/src/dht-rebalance.c
+++ b/xlators/cluster/dht/src/dht-rebalance.c
@@ -3257,9 +3257,6 @@ gf_defrag_start_crawl (void *data)
if (ret)
goto out;
- ret = gf_defrag_fix_layout (this, defrag, &loc,
- fix_layout,
- migrate_data);
}
}
gf_log ("DHT", GF_LOG_INFO, "crawling file-system completed");
diff --git a/xlators/cluster/dht/src/tier.c b/xlators/cluster/dht/src/tier.c
index 4af5e67ebf2..ce6ba4ce57d 100644
--- a/xlators/cluster/dht/src/tier.c
+++ b/xlators/cluster/dht/src/tier.c
@@ -1372,7 +1372,7 @@ tier_start (xlator_t *this, gf_defrag_info_t *defrag)
if (defrag->cmd == GF_DEFRAG_CMD_START_DETACH_TIER) {
ret = 0;
defrag->defrag_status =
- GF_DEFRAG_STATUS_COMPLETE;
+ GF_DEFRAG_STATUS_COMPLETE;
gf_msg (this->name, GF_LOG_DEBUG, 0,
DHT_MSG_LOG_TIER_ERROR,
"defrag->defrag_cmd == "
diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
index 40b74cede68..120c071dbb6 100644
--- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
+++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c
@@ -2040,6 +2040,30 @@ glusterd_op_stage_remove_brick (dict_t *dict, char **op_errstr)
GD_MSG_VOL_NOT_TIER, "%s", errstr);
goto out;
}
+ ret = glusterd_remove_brick_validate_bricks (cmd, brick_count,
+ dict, volinfo,
+ &errstr);
+ if (ret)
+ goto out;
+
+ /* If geo-rep is configured, for this volume, it should be
+ * stopped.
+ */
+ param.volinfo = volinfo;
+ ret = glusterd_check_geo_rep_running (&param, op_errstr);
+ if (ret || param.is_active) {
+ ret = -1;
+ goto out;
+ }
+
+ if (volinfo->rebal.defrag_status == GF_DEFRAG_STATUS_STARTED) {
+ errstr = gf_strdup("Detach is in progress. Please "
+ "retry after completion");
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ GD_MSG_OIP_RETRY_LATER, "%s", errstr);
+ goto out;
+ }
+ break;
case GF_OP_CMD_COMMIT:
if (volinfo->decommission_in_progress) {