diff options
author | Atin Mukherjee <amukherj@redhat.com> | 2016-04-26 12:46:18 +0530 |
---|---|---|
committer | Kaushal M <kaushal@redhat.com> | 2016-04-26 05:26:54 -0700 |
commit | f93761c547c39fad20f9aa96d4baf2641500b9a0 (patch) | |
tree | bcb0fb01834465088627fc7b6d1518da373b07af | |
parent | edeb67a5344389f88a6912460fb0cf2e76a32df3 (diff) |
glusterd: fix validation of lower op-version check in volume set
Commit 2d87a98 introduced a validation to fail lowering down the
cluster.op-version. Commit 2eb8758 actually changed the variable value from
cluster's op-version to volume's op-version which resulted the logic go for a
toss.
Change-Id: I70df32b75c3a3fe47dc840c4a655059e5b124bca
BUG: 1315186
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/14069
Smoke: Gluster Build System <jenkins@build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
-rw-r--r-- | tests/bugs/glusterd/bug-1315186-reject-lowering-down-op-version.t | 22 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/tests/bugs/glusterd/bug-1315186-reject-lowering-down-op-version.t b/tests/bugs/glusterd/bug-1315186-reject-lowering-down-op-version.t new file mode 100644 index 00000000000..4bd6eaac59f --- /dev/null +++ b/tests/bugs/glusterd/bug-1315186-reject-lowering-down-op-version.t @@ -0,0 +1,22 @@ +#! /bin/bash + +. $(dirname $0)/../../include.rc + +# The test validates that lowering down the op-version should fail + +cleanup + +TEST glusterd +TEST pidof glusterd + +#volume create is just to ensure glusterd.info file is created +TEST $CLI volume create $V0 $H0:$B0/b1 + +GDWD=$($CLI system getwd) +OP_VERS_ORIG=$(grep 'operating-version' ${GDWD}/glusterd.info | cut -d '=' -f 2) +OP_VERS_NEW=`expr $OP_VERS_ORIG-1` + +TEST ! $CLI volume set all $V0 cluster.op-version $OP_VERS_NEW + +cleanup; + diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index 951d06b2ff7..339195b00e6 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -1141,7 +1141,7 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr) "%s", errstr); goto out; } - if (local_key_op_version > local_new_op_version) { + if (local_key_op_version > priv->op_version) { local_new_op_version = local_key_op_version; } else { ret = -1; @@ -1150,7 +1150,7 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr) " not be equal or lower than current" " cluster op-version (%d).", local_key_op_version, - local_new_op_version); + priv->op_version); gf_msg (this->name, GF_LOG_ERROR, 0, GD_MSG_VERSION_UNSUPPORTED, "%s", errstr); |