Liron Aravot has uploaded a new change for review. Change subject: sp: startSpm - clusterlock inquire leads to failure ......................................................................
sp: startSpm - clusterlock inquire leads to failure Currently startSpm() is responsible for the pool upgrade, it attempts to upgrade the pool domains to the desired version. During the execution of startSpm() we attempt to retrieve the current spm status in order to compare it with the engine sent parameters - and in case of difference we log the info to the user. When a DC upgrade is performed when the DC is down from a version that uses V1 as the domains version to a version that uses the StoragePoolMemoryBackend we'll encounter a problem - because the StoragePoolMemoryBackend uses the information from the clusterlock only and the current clusterlock that is used on the domain might not support inquiring (safelease for example) which will cause it to throw InquireNotSupportError. As we use the inquired information just to display a warning, in case of a clusterlock that doesn't support inquiring we should just log it to the user and continue with starting the spm. Change-Id: I082dc83ea410768db3819e7259089c20c2614b07 Bug-Url: https://bugzilla.redhat.com/1242092 Signed-off-by: Liron Aravot <[email protected]> --- M vdsm/storage/sp.py 1 file changed, 11 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/66/45966/1 diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py index 4a8b67c..c6bbb64 100644 --- a/vdsm/storage/sp.py +++ b/vdsm/storage/sp.py @@ -237,7 +237,6 @@ raise se.MiscOperationInProgress("spm start %s" % self.spUUID) self.updateMonitoringThreads() - oldlver, oldid = self._backend.getSpmStatus() masterDomVersion = self.getVersion() # If no specific domain version was specified use current master # domain version @@ -249,10 +248,17 @@ self.masterDomain.sdUUID, curVer=masterDomVersion, expVer=expectedDomVersion) - if int(oldlver) != int(prevLVER) or int(oldid) != int(prevID): - self.log.info("expected previd:%s lver:%s got request for " - "previd:%s lver:%s" % - (oldid, oldlver, prevID, prevLVER)) + try: + oldlver, oldid = self._backend.getSpmStatus() + except se.InquireNotSupportedError: + self.log.info("cluster lock inquire isn't supported. " + "proceeding with startSpm()") + oldlver = LVER_INVALID + else: + if int(oldlver) != int(prevLVER) or int(oldid) != int(prevID): + self.log.info("expected previd:%s lver:%s got request for " + "previd:%s lver:%s" % + (oldid, oldlver, prevID, prevLVER)) self.spmRole = SPM_CONTEND -- To view, visit https://gerrit.ovirt.org/45966 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I082dc83ea410768db3819e7259089c20c2614b07 Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: ovirt-3.6 Gerrit-Owner: Liron Aravot <[email protected]> _______________________________________________ vdsm-patches mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
