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>
This commit is contained in:
Atin Mukherjee 2016-04-26 12:46:18 +05:30 committed by Kaushal M
parent edeb67a534
commit f93761c547
2 changed files with 24 additions and 2 deletions

View File

@ -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;

View File

@ -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);