diff options
author | Kotresh HR <khiremat@redhat.com> | 2016-07-12 00:39:31 +0530 |
---|---|---|
committer | Jeff Darcy <jdarcy@redhat.com> | 2016-07-15 06:45:23 -0700 |
commit | ce1905c58fd604f1ef00a55609a832d1cf658c7e (patch) | |
tree | d8ccf24346922871417d118bab8ea531672817a6 /xlators/mgmt/glusterd/src/glusterd-utils.c | |
parent | 452d0d9c58bb59c869a97a70e97ff0bee43f4298 (diff) |
glusterd: Fix gsyncd upgrade issue
Backport of http://review.gluster.org/14898/
Problem:
gluster upgrade is not generating new volfiles
Cause:
During upgrade, "glusterd --xlator-option *.upgrade=on -N"
is run to generate new volfiles. It is run post 'glusterfs'
rpm installation. The above command fails during upgrade
if geo-replication is installed. This is because on
glusterd start 'gsyncd' binary is called to configure
geo-replication related stuff. Since 'glusterfs' rpm is
installed prior to 'geo-rep' rpm, the 'gsyncd' binary
used to glusterd upgrade command is of old version and
hence it fails before generating new volfiles.
Solution:
Don't call geo-replication configure during upgrade/downgrade.
Geo-replication configuration happens during start of glusterd
after upgrade.
Change-Id: Id58ea44ead9f69982f86fb68dc5b9ee3f6cd11a1
BUG: 1356426
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit 1b998788ece8c8b52657e8b9aae65d3279690c5b)
Reviewed-on: http://review.gluster.org/14915
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 354edbb0da5..655cc0446eb 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -6601,40 +6601,16 @@ glusterd_recreate_volfiles (glusterd_conf_t *conf) } int32_t -glusterd_handle_upgrade_downgrade (dict_t *options, glusterd_conf_t *conf) +glusterd_handle_upgrade_downgrade (dict_t *options, glusterd_conf_t *conf, + gf_boolean_t upgrade, gf_boolean_t downgrade) { int ret = 0; char *type = NULL; - gf_boolean_t upgrade = _gf_false; - gf_boolean_t downgrade = _gf_false; gf_boolean_t regenerate_volfiles = _gf_false; gf_boolean_t terminate = _gf_false; - ret = dict_get_str (options, "upgrade", &type); - if (!ret) { - ret = gf_string2boolean (type, &upgrade); - if (ret) { - gf_msg ("glusterd", GF_LOG_ERROR, 0, - GD_MSG_STR_TO_BOOL_FAIL, "upgrade option " - "%s is not a valid boolean type", type); - ret = -1; - goto out; - } - if (_gf_true == upgrade) - regenerate_volfiles = _gf_true; - } - - ret = dict_get_str (options, "downgrade", &type); - if (!ret) { - ret = gf_string2boolean (type, &downgrade); - if (ret) { - gf_msg ("glusterd", GF_LOG_ERROR, 0, - GD_MSG_STR_TO_BOOL_FAIL, "downgrade option " - "%s is not a valid boolean type", type); - ret = -1; - goto out; - } - } + if (_gf_true == upgrade) + regenerate_volfiles = _gf_true; if (upgrade && downgrade) { gf_msg ("glusterd", GF_LOG_ERROR, 0, |