New patch submitted by Dan Kenigsberg (danken(a)redhat.com)
You can review this change at:
http://gerrit.usersys.redhat.com/634
commit b5495e1c8ee06525e65e44f7545627aec75ff0cf
Author: Yotam Oron <yoron(a)redhat.com>
Date: Mon Jun 27 15:22:39 2011 +0300
Related to BZ#705058 - Don't start monitoring domains when reconstructing master
recontructMaster caused domain monitoring threads to be created (repostats)
but were never released. During "reconstructMaster" the storage pool is
not connected and hence there is no point in monitoring domain liveness at all.
Change-Id: I05914b8c3a8f304e0acda5463e1ad00630c3233b
diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 9e9c7f7..8aed3e6 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -465,9 +465,12 @@ class StoragePool:
self.refresh(msdUUID=msdUUID, masterVersion=masterVersion)
# TBD: Run full attachSD?
+ domains = self.getDomains()
for sdUUID in domDict:
- # Add domain to domain list in pool metadata
- self.setDomains(sdUUID, domDict[sdUUID], remove=False,
refresh=False)
+ domains[sdUUID] = domDict[sdUUID].capitalize()
+ # Add domain to domain list in pool metadata
+ self.setMetaParam(PMDK_DOMAINS, domains)
+ self.log.info("Set storage pool domains: %s", domains)
finally:
futureMaster.releaseClusterLock()
finally:
@@ -1147,18 +1150,6 @@ class StoragePool:
return domain
- def setDomains(self, sdUUID, status, remove=False, refresh=True):
- domDict = {}
- domDict = self.getDomains()
- domDict[sdUUID] = status.capitalize()
- if remove and sdUUID in domDict.keys():
- del domDict[sdUUID]
- self.setMetaParam(PMDK_DOMAINS, domDict)
- self.log.info("Set storage pool domains: %s", domDict)
- self.updateMonitoringThreads()
- if refresh:
- self.refresh()
-
def invalidateMetadata(self):
self._metadata.invalidate()