[NEW PATCH] BZ#730778 - Add timeout when acquiring resources in prepareVolume (via gerrit-bot)

Dan Kenigsberg danken at redhat.com
Wed Sep 14 14:53:48 UTC 2011


New patch submitted by Dan Kenigsberg (danken at redhat.com)

You can review this change at: http://gerrit.usersys.redhat.com/859

commit 2c7b2b43deb96cda916225e2bd64ef77d041d5d7
Author: Saggi Mizrahi <smizrahi at redhat.com>
Date:   Sun Aug 28 11:52:05 2011 +0300

    BZ#730778 - Add timeout when acquiring resources in prepareVolume
    
    Also added seperate timeout for prepare volume operations because they
    might take longer
    
    Change-Id: I1bbe6ea0ff82a4af3c728f520546870324363c44

diff --git a/vdsm/config.py b/vdsm/config.py
index 217b58c..f267762 100644
--- a/vdsm/config.py
+++ b/vdsm/config.py
@@ -159,6 +159,7 @@ config.set('irs', 'maximum_allowed_pvs', '8')
 config.set('irs', 'repo_stats_cache_refresh_timeout', '300')
 
 config.set('irs', 'task_resource_default_timeout', '120000')
+config.set('irs', 'prepare_image_timeout', '600000')
 config.set('irs', 'gc_blocker_force_collect_interval', '60')
 
 config.set('irs', 'maximum_domains_in_pool', '100')
diff --git a/vdsm/storage/hsm.py b/vdsm/storage/hsm.py
index 85fa5da..b0ee212 100644
--- a/vdsm/storage/hsm.py
+++ b/vdsm/storage/hsm.py
@@ -1702,8 +1702,9 @@ class HSM:
         vars.task.getSharedLock(STORAGE, sdUUID)
         imageResourcesNamespace = sd.getNamespace(sdUUID, IMAGE_NAMESPACE)
         lockType = rm.LockType.exclusive if rw else rm.LockType.shared
+        timeout = config.getint('irs', 'prepare_image_timeout') / 1000.0
 
-        imgResource = rmanager.acquireResource(imageResourcesNamespace, imgUUID, lockType)
+        imgResource = rmanager.acquireResource(imageResourcesNamespace, imgUUID, lockType, timeout)
         try:
             vol = SDF.produce(sdUUID=sdUUID).produceVolume(imgUUID=imgUUID, volUUID=volUUID)
             # NB We want to be sure that at this point HSM does not use stale LVM
diff --git a/vdsm/storage/resourceFactories.py b/vdsm/storage/resourceFactories.py
index f71ecd9..3d71edf 100644
--- a/vdsm/storage/resourceFactories.py
+++ b/vdsm/storage/resourceFactories.py
@@ -102,7 +102,7 @@ class ImageResourceFactory(rm.SimpleResourceFactory):
     storage_repository = config.get('irs', 'repository')
     # Resource timeouts are in seconds. It's written in ms in the config for
     # backward competability reasons
-    resource_default_timeout = config.getint('irs', 'task_resource_default_timeout') / 1000.0
+    resource_default_timeout = config.getint('irs', 'prepare_image_timeout') / 1000.0
 
     def __init__(self, sdUUID):
         rm.SimpleResourceFactory.__init__(self)




More information about the vdsm-patches mailing list