Bug 1722474

Summary: ISO file attach fails on block-based SD
Product: [oVirt] ovirt-engine Reporter: Roman Hodain <rhodain>
Component: Backend.CoreAssignee: bugs <bugs>
Status: CLOSED DUPLICATE QA Contact: Elad <ebenahar>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.3.3.7CC: bugs, frolland
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-07-16 07:48:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Roman Hodain 2019-06-20 12:28:45 UTC
Description of problem:
When trying to attach an ISO file located on a block-based SD the engine reports that the iso file does not exist.

Version-Release number of selected component (if applicable):
    rhvm-4.3.3.7-0.1.el7.noarch

How reproducible:
    100%

Steps to Reproduce:
1. Upload an iso file to a data block-based SD by hyperviso-X
2. Start VM on a hypervisor-Y without cdrom attached
3. Attache the ISO on the fly to the VM.

Actual results:
Error while executing action Change CD: Drive image file could not be found

2019-06-20 13:54:27,933+0200 INFO  (jsonrpc/3) [api.virt] START changeCD(driveSpec={u'path': u'/rhev/data-center/mnt/blockSD/a08b74fb-7dbf-4ef4-8caa-0e53c0056a02/images/6e58d052-a9bd-4bda-b0b1-b84163f0bee6/2849d
335-9adb-4122-974d-331f9713a7d6', u'iface': u'ide', u'index': u'2'}) from=::ffff:10.44.128.11,38114, flow_id=c507e196-47ca-4d57-bb7c-1ad99030dc5d, vmId=54c125fb-092d-4d58-aea0-d87269776d0f (api:48)
2019-06-20 13:54:27,933+0200 ERROR (jsonrpc/3) [api] FINISH changeCD error=Drive image file could not be found (api:131)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vdsm/common/api.py", line 124, in method
    ret = func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/vdsm/API.py", line 151, in changeCD
    return self.vm.changeCD(driveSpec)
  File "/usr/lib/python2.7/site-packages/vdsm/virt/vm.py", line 4929, in changeCD
    force=bool(drivespec))
  File "/usr/lib/python2.7/site-packages/vdsm/virt/vm.py", line 4939, in _changeBlockDev
    raise exception.ImageFileNotFound()
ImageFileNotFound: Drive image file could not be found
2019-06-20 13:54:27,934+0200 INFO  (jsonrpc/3) [api.virt] FINISH changeCD return={'status': {'message': 'Drive image file could not be found', 'code': 13}} from=::ffff:10.44.128.11,38114, flow_id=c507e196-47ca-4
d57-bb7c-1ad99030dc5d, vmId=54c125fb-092d-4d58-aea0-d87269776d0f (api:54)

Expected results:
The ISO file is attached

Additional info:
The problem is caused by the fact that we do not call prepareImage for the iso file. That seems to be a consequence of the old approach when the ISO file was always available on an NFS share and the activation was not needed.

If the VM is started with already connected ISO file then it works. Any consequent ISO attachments to different VMs on the same hypervisor work as the LV is already activated.

Comment 1 Fred Rolland 2019-07-16 07:48:41 UTC

*** This bug has been marked as a duplicate of bug 1589763 ***