Bug 846014

Summary: [rhevm] [engine-core] beta2 - Hot-Plug failure adding a non-bootable VirtIO disk where OS installed on IDE disk
Product: Red Hat Enterprise Linux 6 Reporter: vvyazmin <vvyazmin>
Component: vdsmAssignee: Eduardo Warszawski <ewarszaw>
Status: CLOSED ERRATA QA Contact: vvyazmin <vvyazmin>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.3CC: abaron, bazulay, cpelland, dyasny, hateya, iheim, ilvovsky, lpeer, Rhev-m-bugs, sgrinber, yeylon, ykaul, zdover
Target Milestone: beta   
Target Release: 6.4   
Hardware: x86_64   
OS: Linux   
Whiteboard: storage
Fixed In Version: vdsm-4.9.6-29.0 Doc Type: Bug Fix
Doc Text:
Previously, it was impossible to hotplug a non-bootable VirtIO disk after installing an operating system on an IDE disk. All disk types failed in this scenario. A fix was made to the engine core. It is now possible to hotplug a non-bootable VirtIO disk after installing an operating system on an IDE disk.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-04 19:04:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
## Logs vdsm, rhevm none

Description vvyazmin@redhat.com 2012-08-06 13:50:51 UTC
Created attachment 602520 [details]
## Logs vdsm, rhevm

Description of problem:
[rhevm] [engine-core][hot-plug] Hot-Plug failed add VirtIO disk

Version-Release number of selected component (if applicable):
RHEVM 3.1 - SI13

RHEVM: rhevm-3.1.0-10.el6ev.noarch
VDSM: vdsm-4.9.6-26.0.el6_3.x86_64
LIBVIRT: libvirt-0.9.10-21.el6.x86_64
QEMU & KVM: qemu-kvm-rhev-0.12.1.2-2.298.el6_3.x86_64
SANLOCK: sanlock-2.3-3.el6_3.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Install OS (Windows / RHEL) on IDE disk
2. Hot-plug VirtIO disk:
3. Test failed with all types disk 
Direct LUN
Prealocated disk
This Provision disk
Shareable disk
  
Actual results:
Failed attached hot-plug disk 

Expected results:
Succeed attached all types VirtIO disk


Additional info:
**RHEVM log**
2012-08-06 17:25:29,089 INFO  [org.ovirt.engine.core.bll.AttachDiskToVmCommand] (pool-4-thread-49) [15023c5f] Running command: AttachDiskToVmCommand internal: false. Entities affected :  ID: c0b1eae5-6d64-4a14-ad40-7793e0aeeb13 Type: VM,  ID: 53a8f940-b8f5-4b7d-ac30-ca85ed2bb433 Type: Disk
2012-08-06 17:25:29,114 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.HotPlugDiskVDSCommand] (pool-4-thread-49) [15023c5f] START, HotPlugDiskVDSCommand(vdsId = e796dad4-def6-11e1-8a46-001a4a169738, vmId=c0b1eae5-6d64-4a14-ad40-7793e0aeeb13, volumeId = 53a8f940-b8f5-4b7d-ac30-ca85ed2bb433), log id: 43c29843
2012-08-06 17:25:29,492 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.BrokerCommandBase] (pool-4-thread-49) [15023c5f] Failed in HotPlugDiskVDS method
2012-08-06 17:25:29,492 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.BrokerCommandBase] (pool-4-thread-49) [15023c5f] Error code unexpected and error message VDSGenericException: VDSErrorException: Failed to HotPlugDiskVDS, error = Unexpected exception
2012-08-06 17:25:29,493 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.BrokerCommandBase] (pool-4-thread-49) [15023c5f] Command org.ovirt.engine.core.vdsbroker.vdsbroker.HotPlugDiskVDSCommand return value 
 Class Name: org.ovirt.engine.core.vdsbroker.vdsbroker.StatusOnlyReturnForXmlRpc
mStatus                       Class Name: org.ovirt.engine.core.vdsbroker.vdsbroker.StatusForXmlRpc
mCode                         16
mMessage                      Unexpected exception


2012-08-06 17:25:29,493 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.BrokerCommandBase] (pool-4-thread-49) [15023c5f] Vds: Cougar05
2012-08-06 17:25:29,493 ERROR [org.ovirt.engine.core.vdsbroker.VDSCommandBase] (pool-4-thread-49) [15023c5f] Command HotPlugDiskVDS execution failed. Exception: VDSErrorException: VDSGenericException: VDSErrorException: Failed to HotPlugDiskVDS, error = Unexpected exception
2012-08-06 17:25:29,493 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.HotPlugDiskVDSCommand] (pool-4-thread-49) [15023c5f] FINISH, HotPlugDiskVDSCommand, log id: 43c29843
2012-08-06 17:25:29,493 ERROR [org.ovirt.engine.core.bll.AttachDiskToVmCommand] (pool-4-thread-49) [15023c5f] Command org.ovirt.engine.core.bll.AttachDiskToVmCommand throw Vdc Bll exception. With error message VdcBLLException: org.ovirt.engine.core.vdsbroker.vdsbroker.VDSErrorException: VDSGenericException: VDSErrorException: Failed to HotPlugDiskVDS, error = Unexpected exception
2012-08-06 17:25:29,497 ERROR [org.ovirt.engine.core.bll.AttachDiskToVmCommand] (pool-4-thread-49) [15023c5f] Transaction rolled-back for command: org.ovirt.engine.core.bll.AttachDiskToVmCommand.
2012-08-06 17:25:29,500 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (pool-4-thread-49) [15023c5f] No severity for USER_FAILED_ATTACH_DISK_TO_VM type

**VDSM Log:**
Thread-56071::ERROR::2012-08-06 14:04:11,268::BindingXMLRPC::879::vds::(wrapper) unexpected error
Traceback (most recent call last):
  File "/usr/share/vdsm/BindingXMLRPC.py", line 869, in wrapper
    res = f(*args, **kwargs)
  File "/usr/share/vdsm/BindingXMLRPC.py", line 250, in vmHotplugDisk
    return vm.hotplugDisk(params)
  File "/usr/share/vdsm/API.py", line 392, in hotplugDisk
    return curVm.hotplugDisk(params)
  File "/usr/share/vdsm/libvirtvm.py", line 1469, in hotplugDisk
    self.updateDriveIndex(diskParams)
  File "/usr/share/vdsm/vm.py", line 533, in updateDriveIndex
    drv['index'] = self.__getNextIndex(self._usedIndices[drv['iface']])
KeyError: 'virtio'

Comment 1 Simon Grinberg 2012-08-06 14:06:56 UTC
It's the third or forth in the series of issues when mixing IDE and Virtio - they are probably related and have the same root cause. 

Ayal, 
Shouldn't we merge them all into one and avoid testing the combination until root cause is resolved?

Comment 2 Haim 2012-08-06 15:44:41 UTC
(In reply to comment #1)
> It's the third or forth in the series of issues when mixing IDE and Virtio -
> they are probably related and have the same root cause. 
> 
> Ayal, 
> Shouldn't we merge them all into one and avoid testing the combination until
> root cause is resolved?

Simon, not sure on what other cases you refer to (BZ's will be much appreciated), in any case, this is a legit case in which user has a vm installed on IDE disk, and he tries to hot-plug a virtio disk.

Comment 3 Ayal Baron 2012-08-06 22:02:23 UTC
related to: https://bugzilla.redhat.com/show_bug.cgi?id=834851 ?

Comment 4 Eduardo Warszawski 2012-08-07 11:45:51 UTC
IMHO not related to https://bugzilla.redhat.com/show_bug.cgi?id=834851

Preintegration passed test fix is in:
http://gerrit.ovirt.org/#/c/6970/

Comment 5 Eduardo Warszawski 2012-08-15 16:28:03 UTC
Change-Id: Ia8f9a317dd07f3fb8f69ecf4c647e91e5e9064dc

Comment 8 vvyazmin@redhat.com 2012-08-22 12:44:57 UTC
Verified on RHEVM 3.1 - SI15

RHEVM: rhevm-3.1.0-13.el6ev.noarch
VDSM: vdsm-4.9.6-29.0.el6_3.x86_64
LIBVIRT: libvirt-0.9.10-21.el6.x86_64
QEMU & KVM: qemu-kvm-rhev-0.12.1.2-2.298.el6_3.x86_64
SANLOCK: sanlock-2.3-3.el6_3.x86_64

Test succeed with following types disk:
* Direct LUN
* Prealocated disk
* This Provision disk
* Shareable disk

Comment 11 errata-xmlrpc 2012-12-04 19:04:41 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/RHSA-2012-1508.html