glusterd: Set op-version on startup based on install status
If the current installation of glusterfs doesn't have a stored op-version and is, a. a fresh install, then set op-version to maximum b. an upgrade from release which didn't have op-version support, set it to minimum. The install status is detected using the peer-uuid. If both peer-uuid and op-version are not present in the store, the installation is fresh. If peer-uuid is present, but op-version is absent in the store, the installation has been upgraded from a version which didn't support op-versions. By setting the initial op-version as above, we can ensure that a. features are not enabled accidentally during upgrades b. a fresh install starts with all possible features enabled. Change-Id: I52aed9ebeb5d3823c81e65f739a78a924ecf7e12 BUG: 954256 Signed-off-by: Kaushal M <kaushal@redhat.com> Reviewed-on: http://review.gluster.org/4867 Reviewed-by: Krutika Dhananjay <kdhananj@redhat.com> Reviewed-by: Vijay Bellur <vbellur@redhat.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
This commit is contained in:
parent
1e62ff42df
commit
fa227c0834
@ -1768,11 +1768,29 @@ glusterd_restore_op_version (xlator_t *this)
|
||||
goto out;
|
||||
}
|
||||
|
||||
gf_log (this->name, GF_LOG_INFO, "op-version not found in store, "
|
||||
"setting it to minimum op-version : %d", GD_OP_VERSION_MIN);
|
||||
|
||||
/* If op-version is missing, set it to GD_OP_VERSION_MIN */
|
||||
conf->op_version = GD_OP_VERSION_MIN;
|
||||
/* op-version can be missing from the store file in 2 cases,
|
||||
* 1. This is a new install of glusterfs
|
||||
* 2. This is an upgrade of glusterfs from a version without op-version
|
||||
* to a version with op-version (eg. 3.3 -> 3.4)
|
||||
*
|
||||
* Detection of a new install or an upgrade from an older install can be
|
||||
* done by checking for the presence of the its peer-id in the store
|
||||
* file. If peer-id is present, the installation is an upgrade else, it
|
||||
* is a new install.
|
||||
*
|
||||
* For case 1, set op-version to GD_OP_VERSION_MAX.
|
||||
* For case 2, set op-version to GD_OP_VERSION_MIN.
|
||||
*/
|
||||
ret = glusterd_retrieve_uuid();
|
||||
if (ret) {
|
||||
gf_log (this->name, GF_LOG_INFO, "Detected new install. Setting"
|
||||
" op-version to maximum : %d", GD_OP_VERSION_MAX);
|
||||
conf->op_version = GD_OP_VERSION_MAX;
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_INFO, "Upgrade detected. Setting"
|
||||
" op-version to minimum : %d", GD_OP_VERSION_MIN);
|
||||
conf->op_version = GD_OP_VERSION_MIN;
|
||||
}
|
||||
ret = 0;
|
||||
out:
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user