Change in vdsm[master]: Retry MD reads when validating pool-domain membership.

ewarszaw at redhat.com ewarszaw at redhat.com
Wed Apr 17 20:18:25 UTC 2013


Eduardo has uploaded a new change for review.

Change subject: Retry MD reads when validating pool-domain membership.
......................................................................

Retry MD reads when validating pool-domain membership.

Assumed that engine has a reason to test a particular SD, a
a failure may be consequence of stale metadata.
Retrying once to read the metadata again in order to overcome
missing storagePoolrefresh'es.

Change-Id: I4c11e1a0ce70e85b17167af5613bf597b42717c8
Signed-off-by: Eduardo <ewarszaw at redhat.com>
---
M vdsm/storage/sp.py
1 file changed, 8 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/13/14013/1

diff --git a/vdsm/storage/sp.py b/vdsm/storage/sp.py
index 9bd538b..f4adeee 100644
--- a/vdsm/storage/sp.py
+++ b/vdsm/storage/sp.py
@@ -498,7 +498,9 @@
     @unsecured
     def validatePoolSD(self, sdUUID):
         if sdUUID not in self.getDomains():
-            raise se.StorageDomainNotMemberOfPool(self.spUUID, sdUUID)
+            self._metadata.invalidate()
+            if sdUUID not in self.getDomains():
+                raise se.StorageDomainNotMemberOfPool(self.spUUID, sdUUID)
         return True
 
     @unsecured
@@ -507,9 +509,11 @@
         Avoid handling domains if not owned by pool.
         """
         self.validatePoolSD(dom.sdUUID)
-        pools = dom.getPools()
-        if self.spUUID not in pools:
-            raise se.StorageDomainNotInPool(self.spUUID, dom.sdUUID)
+        if self.spUUID not in dom.getPools():
+            dom.invalidateMetadata()
+            if self.spUUID not in dom.getPools():
+                raise se.StorageDomainNotInPool(self.spUUID, dom.sdUUID)
+        return True
 
     @unsecured
     def validatePoolMVerHigher(self, masterVersion):


--
To view, visit http://gerrit.ovirt.org/14013
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4c11e1a0ce70e85b17167af5613bf597b42717c8
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Eduardo <ewarszaw at redhat.com>


More information about the vdsm-patches mailing list