Bug 996554 - vmHotPlugNic changing card status plugged/unplugged
Summary: vmHotPlugNic changing card status plugged/unplugged
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: vdsm
Version: 3.3.0
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
: 3.3.0
Assignee: Nobody's working on this, feel free to take it
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-08-13 12:34 UTC by Giuseppe Vallarelli
Modified: 2013-08-13 13:47 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-08-13 13:43:14 UTC
oVirt Team: ---
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
vdsm logs (581.18 KB, text/x-log)
2013-08-13 12:34 UTC, Giuseppe Vallarelli
no flags Details

Description Giuseppe Vallarelli 2013-08-13 12:34:38 UTC
Created attachment 786134 [details]
vdsm logs

Description of problem:

Changing the card status (unplugged and then plugged) causes the following problem in vdsm:

Unplugging the vnic:

Thread-47308::DEBUG::2013-08-13 14:19:38,674::BindingXMLRPC::974::vds::(wrapper) client [10.34.63.77]::call vmHotunplugNic with ({'nic': {'nicModel': 'pv', 'macAddr': '00:1a:4a:86:b8:b6', 'linkActive': 'true', 'network': 'rhevm', 'custom': {}, 'filter': 'vdsm-no-mac-spoofing', 'specParams': {}, 'deviceId': 'd4d50759-e05e-46e5-a80c-5b4906fb9d6b', 'address': {'bus': '0x00', ' slot': '0x09', ' domain': '0x0000', ' type': 'pci', ' function': '0x0'}, 'device': 'bridge', 'type': 'interface'}, 'vmId': '2385f03d-474d-4496-a466-bf3bf75c776b'},) {}
Thread-47308::DEBUG::2013-08-13 14:19:38,675::vm::3181::vm.Vm::(hotunplugNic) vmId=`2385f03d-474d-4496-a466-bf3bf75c776b`::Hotunplug NIC xml: <interface type="bridge">
        <address bus="0x00" domain="0x0000" function="0x0" slot="0x09" type="pci"/>
        <mac address="00:1a:4a:86:b8:b6"/>
        <model type="virtio"/>
        <source bridge="rhevm"/>
        <filterref filter="vdsm-no-mac-spoofing"/>
        <link state="up"/>
</interface>


Thread-47308::DEBUG::2013-08-13 14:19:38,796::BindingXMLRPC::981::vds::(wrapper) return vmHotunplugNic with {'status': {'message': 'Done', 'code': 0}

Plugging it back:

Thread-47315::DEBUG::2013-08-13 14:19:45,097::BindingXMLRPC::974::vds::(wrapper) client [10.34.63.77]::call vmHotplugNic with ({'nic': {'nicModel': 'pv', 'macAddr': '00:1a:4a:86:b8:b6', 'linkActive': 'true', 'network': 'rhevm', 'custom': {}, 'filter': 'vdsm-no-mac-spoofing', 'specParams': {}, 'deviceId': 'd4d50759-e05e-46e5-a80c-5b4906fb9d6b', 'address': {'bus': '0x00', ' slot': '0x09', ' domain': '0x0000', ' type': 'pci', ' function': '0x0'}, 'device': 'bridge', 'type': 'interface'}, 'vmId': '2385f03d-474d-4496-a466-bf3bf75c776b'},) {}
Thread-47315::DEBUG::2013-08-13 14:19:45,098::vm::2991::vm.Vm::(hotplugNic) vmId=`2385f03d-474d-4496-a466-bf3bf75c776b`::Hotplug NIC xml: <interface type="bridge">
        <address  domain="0x0000"  function="0x0"  slot="0x09"  type="pci" bus="0x00"/>
        <mac address="00:1a:4a:86:b8:b6"/>
        <model type="virtio"/>
        <source bridge="rhevm"/>
        <filterref filter="vdsm-no-mac-spoofing"/>
        <link state="up"/>
</interface>

Thread-47315::DEBUG::2013-08-13 14:19:45,311::libvirtconnection::101::libvirtconnection::(wrapper) Unknown libvirterror: ecode: 1 edom: 0 level: 2 message: An error occurred, but the cause is unknown
Thread-47315::ERROR::2013-08-13 14:19:45,311::vm::2996::vm.Vm::(hotplugNic) vmId=`2385f03d-474d-4496-a466-bf3bf75c776b`::Hotplug failed
Traceback (most recent call last):
  File "/usr/share/vdsm/vm.py", line 2994, in hotplugNic
    self._dom.attachDevice(nicXml)
  File "/usr/share/vdsm/vm.py", line 824, in f
    ret = attr(*args, **kwargs)
  File "/usr/lib64/python2.6/site-packages/vdsm/libvirtconnection.py", line 76, in wrapper
    ret = f(*args, **kwargs)
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 399, in attachDevice
    if ret == -1: raise libvirtError ('virDomainAttachDevice() failed', dom=self)
libvirtError: An error occurred, but the cause is unknown
Thread-47315::DEBUG::2013-08-13 14:19:45,312::BindingXMLRPC::981::vds::(wrapper) return vmHotplugNic with {'status': {'message': 'An error occurred, but the cause is unknown', 'code': 49}}


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

vdsm:
Version     : 4.12.0
Release     : 52.gitce029ba.el6ev

rhev:
Version 3.3.0-0.14.master.el6ev 



How reproducible:
Having a running vm

Steps to Reproduce:
1. Unplug a vnic
2. Replug the same vnic

Actual results:

Error while executing action Edit VM Interface properties: Failed to activate VM Network Interface.

Expected results:

Vnic should be plugged without problems.

Comment 1 Martin Pavlik 2013-08-13 13:43:14 UTC
Hi Giuseppe,

this is expected behavior, since you used VM with no operating system (OS) installed, hotplug feature need support from OS side.

From design page http://www.ovirt.org/Features/Design/DetailedHotPlugNic

This feature will be restricted to operating systems that support this action – Windows7, Windows7 x64, Windows2008, Windows2008 x64, Windows2008R2 x64, RHEL5, RHEL5 x64, RHEL6 and RHEL6 x64 

Actually later on this restriction to certain OSes was removed, however support for hotplug from OS side is required.

Comment 2 Giuseppe Vallarelli 2013-08-13 13:47:27 UTC
Hi Martin thanks for the explanation, from the error message that is not clear that is not supported.


Note You need to log in before you can comment on or make changes to this bug.