Bug 807719

Summary: VDSM: getVmsList get broken when running without sdUUID
Product: [Retired] oVirt Reporter: Avi Tal <atal>
Component: vdsmAssignee: Dan Kenigsberg <danken>
Status: CLOSED CURRENTRELEASE QA Contact: yeylon <yeylon>
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: abaron, acathrow, amureini, bazulay, dyasny, iheim, lvroyce, srevivo, ykaul
Target Milestone: ---   
Target Release: 3.3.4   
Hardware: x86_64   
OS: Linux   
Whiteboard: storage
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-17 18:26:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
vdsm log none

Description Avi Tal 2012-03-28 14:49:05 UTC
Created attachment 573362 [details]
vdsm log

Description of problem:
getVmsList(spUUID='253deb29-c59b-44fa-a498-96fe895d4ddd', sdUUID=None, options=None)

return:
{'status': {'message': "General Exception, UUID: 'Storage.None'", 'code': 3000}}


Thread-2686::WARNING::2012-03-28 16:24:11,460::resourceManager::713::ResourceManager.Owner::(acquire) Unexpected exception caught while owner 'e7b733af-1f86-450f-8197-46ea9bfcc83f' tried to acquire 'Storage.None'
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/resourceManager.py", line 699, in acquire
    resource = manager.acquireResource(namespace, name, locktype, timeout)
  File "/usr/share/vdsm/storage/resourceManager.py", line 459, in acquireResource
    request = self.registerResource(namespace, name, lockType, callback)
  File "/usr/share/vdsm/storage/resourceManager.py", line 480, in registerResource
    if not self._resourceNameValidator.match(name):
TypeError: expected string or buffer
Thread-2686::ERROR::2012-03-28 16:24:11,462::task::853::TaskManager.Task::(_setError) Task=`e7b733af-1f86-450f-8197-46ea9bfcc83f`::Unexpected error
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 861, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/logUtils.py", line 38, in wrapper
    res = f(*args, **kwargs)
  File "/usr/share/vdsm/storage/hsm.py", line 1135, in getVmsList
    vars.task.getSharedLock(STORAGE, sdUUID)
  File "/usr/share/vdsm/storage/task.py", line 1306, in getSharedLock
    self.resOwner.acquire(namespace, resName, resourceManager.LockType.shared, timeout)
  File "/usr/share/vdsm/storage/resourceManager.py", line 714, in acquire
    raise se.ResourceException(fullName)
ResourceException: General Exception, UUID: 'Storage.None'
Thread-2686::DEBUG::2012-03-28 16:24:11,462::task::872::TaskManager.Task::(_run) Task=`e7b733af-1f86-450f-8197-46ea9bfcc83f`::Task._run: e7b733af-1f86-450f-8197-46ea9bfcc83f ('253deb29-c59b-44fa-a498-96fe895d4ddd', None) {} failed - stopping task

Comment 1 Royce Lv 2012-04-17 06:14:23 UTC
http://gerrit.ovirt.org/#change,3560,provide patch for this bug.

For None sdUUID, we should not try to get resource lock directly,instead, we should get Vms from the master domain of the pool.