Bug 725963

Summary: [vdsm] isBlockDevice() throws an error if device doesn't exist` [getDeviceList fails]
Product: Red Hat Enterprise Linux 6 Reporter: Haim <hateya>
Component: vdsmAssignee: Saggi Mizrahi <smizrahi>
Status: CLOSED ERRATA QA Contact: Haim <hateya>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.2CC: abaron, bazulay, danken, dnaori, hateya, iheim, mgoldboi, mkenneth, yeylon, ykaul
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: vdsm-4.9-87 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 07:32:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
vdsm log none

Description Haim 2011-07-27 07:45:20 UTC
Description of problem:

isBlockDevice() throws an error if device doesn't exist`.

running getDeviceList, vdsm scans all paths under /sys/block, and in case one of the paths are missing, it throws and exception.


Thread-401::ERROR::2011-07-27 10:21:40,478::dispatcher::106::Storage.Dispatcher.Protect::(run) [Errno 2]
 No such multipath device `sdfs`
Thread-401::ERROR::2011-07-27 10:21:40,479::dispatcher::107::Storage.Dispatcher.Protect::(run) Traceback
 (most recent call last):
  File "/usr/share/vdsm/storage/dispatcher.py", line 96, in run
    result = ctask.prepare(self.func, *args, **kwargs)
  File "/usr/share/vdsm/storage/task.py", line 1184, in prepare
    raise self.error
OSError: [Errno 2] No such multipath device `sdfs`

MainProcess|Thread-401::DEBUG::2011-07-27 10:21:40,416::multipath::159::Storage.Misc.excCmd::(getScsiSer
ial) FAILED: <err> = ''; <rc> = 1
Thread-401::ERROR::2011-07-27 10:21:40,469::task::865::TaskManager.Task::(_setError) Unexpected error
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 873, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/storage/hsm.py", line 686, in public_getDeviceList
    devices = self._getDeviceList(storageType)
  File "/usr/share/vdsm/storage/hsm.py", line 714, in _getDeviceList
    for dev in multipath.pathListIter(guids):
  File "/usr/share/vdsm/storage/multipath.py", line 223, in pathListIter
    if not devicemapper.isBlockDevice(slave):
  File "/usr/share/vdsm/storage/devicemapper.py", line 80, in isBlockDevice
    devName = resolveDevName(devName)
  File "/usr/share/vdsm/storage/devicemapper.py", line 73, in resolveDevName
    raise OSError(errno.ENOENT, "No such multipath device `%s`" % devName)
OSError: [Errno 2] No such multipath device `sdfs`

Comment 1 Haim 2011-07-27 07:46:20 UTC
Created attachment 515432 [details]
vdsm log

Comment 2 Saggi Mizrahi 2011-07-27 07:49:25 UTC
http://gerrit.usersys.redhat.com/749

Comment 5 Haim 2011-09-11 09:08:35 UTC
verified, tested on specific host with specific HBA's which proved this issue been resolved.

Comment 6 errata-xmlrpc 2011-12-06 07:32:10 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHEA-2011-1782.html