diff options
author | Sanju Rakonde <srakonde@redhat.com> | 2020-06-16 18:03:21 +0530 |
---|---|---|
committer | MOHIT AGRAWAL <moagrawa@redhat.com> | 2020-06-21 04:21:02 +0000 |
commit | c18782bc91bb028fe206996a7ef0075beabdf067 (patch) | |
tree | aba6dfaa2a4f1dfcbd7f5d74957bb1ac9e9d5ada /xlators/mgmt/glusterd/src/glusterd-utils.c | |
parent | d55218781876005323d8c146ed4bd73e2146866a (diff) |
glusterd: add-brick command failure
Problem: add-brick operation is failing when replica or disperse
count is not mentioned in the add-brick command.
Reason: with commit a113d93 we are checking brick order while
doing add-brick operation for replica and disperse volumes. If
replica count or disperse count is not mentioned in the command,
the dict get is failing and resulting add-brick operation failure.
fixes: #1306
Change-Id: Ie957540e303bfb5f2d69015661a60d7e72557353
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 98e45067dfe..2dc1fd243f9 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -14360,7 +14360,8 @@ glusterd_compare_addrinfo(struct addrinfo *first, struct addrinfo *next) * volume are present on the same server */ int32_t -glusterd_check_brick_order(dict_t *dict, char *err_str, int32_t type) +glusterd_check_brick_order(dict_t *dict, char *err_str, int32_t type, + int32_t sub_count) { int ret = -1; int i = 0; @@ -14377,7 +14378,6 @@ glusterd_check_brick_order(dict_t *dict, char *err_str, int32_t type) char *tmpptr = NULL; char *volname = NULL; int32_t brick_count = 0; - int32_t sub_count = 0; struct addrinfo *ai_info = NULL; char brick_addr[128] = { 0, @@ -14428,31 +14428,6 @@ glusterd_check_brick_order(dict_t *dict, char *err_str, int32_t type) goto out; } - if (type != GF_CLUSTER_TYPE_DISPERSE) { - ret = dict_get_int32n(dict, "replica-count", SLEN("replica-count"), - &sub_count); - if (ret) { - gf_msg(this->name, GF_LOG_ERROR, 0, GD_MSG_DICT_GET_FAILED, - "Bricks check : Could" - " not retrieve replica count"); - goto out; - } - gf_msg_debug(this->name, 0, - "Replicate cluster type " - "found. Checking brick order."); - } else { - ret = dict_get_int32n(dict, "disperse-count", SLEN("disperse-count"), - &sub_count); - if (ret) { - gf_msg(this->name, GF_LOG_ERROR, 0, GD_MSG_DICT_GET_FAILED, - "Bricks check : Could" - " not retrieve disperse count"); - goto out; - } - gf_msg(this->name, GF_LOG_INFO, 0, GD_MSG_DISPERSE_CLUSTER_FOUND, - "Disperse cluster type" - " found. Checking brick order."); - } brick_list_dup = brick_list_ptr = gf_strdup(brick_list); /* Resolve hostnames and get addrinfo */ while (i < brick_count) { @@ -14547,5 +14522,6 @@ out: ai_list_tmp2 = ai_list_tmp1; } free(ai_list_tmp2); + gf_msg_debug("glusterd", 0, "Returning %d", ret); return ret; } |