[ovirt-devel] Exception during VM recovery causes VMs not being properly recovered

Adam Litke alitke at redhat.com
Thu Jul 10 12:06:17 UTC 2014


On 10/07/14 13:35 +0200, Vinzenz Feenstra wrote:
>Hi,
>
>With the current master of VDSM after restarting VDSM (e.g. after 
>upgrading) I noticed that the VMs were not properly initialized and in 
>PAUSED state. Once checking the logs I found that the cause was here:

Thanks for the report and sorry about the problem.  This is related to
my earlier thread about vm recovery.  I am working to resolve this
with Federico.  We need to find a cleaner way to handle our corner
case negative flows.  For now you can disable the syncVolumeChain call
in recovery to avoid the problem.

>
>Thread-13::INFO::2014-07-10 
>12:11:56,400::vm::2244::vm.Vm::(_startUnderlyingVm) 
>vmId=`db614831-3b4b-4010-a989-f7a5ae6fa5d0`::Skipping errors on 
>recovery
>Traceback (most recent call last):
>  File "/usr/share/vdsm/virt/vm.py", line 2228, in _startUnderlyingVm
>    self._run()
>  File "/usr/share/vdsm/virt/vm.py", line 3312, in _run
>    self._domDependentInit()
>  File "/usr/share/vdsm/virt/vm.py", line 3204, in _domDependentInit
>    self._syncVolumeChain(drive)
>  File "/usr/share/vdsm/virt/vm.py", line 5686, in _syncVolumeChain
>    volumes = self._driveGetActualVolumeChain(drive)
>  File "/usr/share/vdsm/virt/vm.py", line 5665, in 
>_driveGetActualVolumeChain
>    sourceAttr = ('file', 'dev')[drive.blockDev]
>TypeError: tuple indices must be integers, not NoneType
>
>The reason here seems to be this:
>Thread-13::DEBUG::2014-07-10 12:11:56,393::vm::1349::vm.Vm::(blockDev) 
>vmId=`db614831-3b4b-4010-a989-f7a5ae6fa5d0`::Unable to determine if 
>the path '/rhev/data-center/00000002-0002-0002-0002-000000000002/41b6de4e-23da-481d-904d-9af24fc5f3ab/images/17206f99-38ab-45bc-ae9b-d36a66b00e4c/7b05de43-9d85-435f-8ae9-6ccde21548e4' 
>is a block device
>Traceback (most recent call last):
>  File "/usr/share/vdsm/virt/vm.py", line 1346, in blockDev
>    self._blockDev = utils.isBlockDevice(self.path)
>  File "/usr/lib64/python2.6/site-packages/vdsm/utils.py", line 99, in 
>isBlockDevice
>    return stat.S_ISBLK(os.stat(path).st_mode)
>OSError: [Errno 2] No such file or directory: '/rhev/data-center/00000002-0002-0002-0002-000000000002/41b6de4e-23da-481d-904d-9af24fc5f3ab/images/17206f99-38ab-45bc-ae9b-d36a66b00e4c/7b05de43-9d85-435f-8ae9-6ccde21548e4'
>
>I am running the host on RHEL6.5
>
>Note: I just rebooted the host and started a few more VMs again and 
>when I restart VDSM I get the same errors again.
>
>-- 
>Regards,
>
>Vinzenz Feenstra | Senior Software Engineer
>RedHat Engineering Virtualization R & D
>Phone: +420 532 294 625
>IRC: vfeenstr or evilissimo
>
>Better technology. Faster innovation. Powered by community collaboration.
>See how it works at redhat.com
>

-- 
Adam Litke



More information about the Devel mailing list