Reviewed: https://review.openstack.org/300885 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=871368bc65eb9ededd053055c35673dbb61dd3ad Submitter: Jenkins Branch: master
commit 871368bc65eb9ededd053055c35673dbb61dd3ad Author: Moshe Levi <mosh...@mellanox.com> Date: Sun Apr 3 15:53:36 2016 +0300 libvirt: pci detach devices should use dev.address The _detach_pci_devices gets pci_devs which is list of PciDevice objects. The code that check if pci is detach is using dev['address'] and as not in the obj format dev.address. Closes-Bug: #1565466 Change-Id: I9ba58707d03d19018a025d7760f2a77f84d23aad ** Changed in: nova Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1565466 Title: pci detach failed with 'PciDevice' object has no attribute '__getitem__' Status in OpenStack Compute (nova): Fix Released Status in OpenStack Compute (nova) liberty series: New Status in OpenStack Compute (nova) mitaka series: New Bug description: when doing suspend with pci device, nova tries to detach the pci device from libvrit dom. after calling guest.detach_device nova checks the dom to ensure the detaching is finished. if that detach failed (because of using old qemu in my case) the _detach_pci_devices method failed with the following error instead of raising PciDeviceDetachFailed 2016-03-31 08:50:46.727 10338 DEBUG nova.objects.instance [req-225f9ed4-1f93-427b-a045-84535b3aeb55 admin demo] Lazy-loading 'pci_devices' on Instance uuid 7114fa62-10bb-45dc-b64e-b301bfce4dfa obj_load_attr /opt/stack/nova/nova/objects/instance.py:895 2016-03-31 08:50:46.727 10338 DEBUG oslo_messaging._drivers.amqpdriver [req-225f9ed4-1f93-427b-a045-84535b3aeb55 admin demo] CALL msg_id: c96a579643054867adc0e119d93cc6a9 exchange 'nova' topic 'conductor' _send /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py:454 2016-03-31 08:50:46.745 10338 DEBUG oslo_messaging._drivers.amqpdriver [-] received reply msg_id: c96a579643054867adc0e119d93cc6a9 __call__ /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py:302 2016-03-31 08:50:46.751 10338 DEBUG nova.virt.libvirt.config [req-225f9ed4-1f93-427b-a045-84535b3aeb55 admin demo] Generated XML ('<hostdev mode="subsystem" type="pci" managed="yes">\n <source>\n <address bus="0x04" domain="0x0000" function="0x7" slot="0x00"/>\n </source>\n</hostdev>\n',) to_xml /opt/stack/nova/nova/virt/libvirt/config.py:82 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [req-225f9ed4-1f93-427b-a045-84535b3aeb55 admin demo] [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] Setting instance vm_state to ERROR 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] Traceback (most recent call last): 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] File "/opt/stack/nova/nova/compute/manager.py", line 6588, in _error_out_instance_on_exception 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] yield 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] File "/opt/stack/nova/nova/compute/manager.py", line 4196, in suspend_instance 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] self.driver.suspend(context, instance) 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2641, in suspend 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] self._detach_sriov_ports(context, instance, guest) 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 3432, in _detach_sriov_ports 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] self._detach_pci_devices(guest, sriov_devs) 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 3350, in _detach_pci_devices 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] dbsf = pci_utils.parse_address(dev['address']) 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] TypeError: 'PciDevice' object has no attribute '__getitem__' 2016-03-31 08:50:51.784 10338 ERROR nova.compute.manager [instance: 7114fa62-10bb-45dc-b64e-b301bfce4dfa] 2016-03-31 08:50:51.792 10338 DEBUG oslo_messaging._drivers.amqpdriver [req-225f9ed4-1f93-427b-a045-84535b3aeb55 admin demo] CALL msg_id: b5353aecfd4a44aa8735c46a0427a12d exchange 'nova' topic 'conductor' _send /usr/lib/python2.7/site-packages/oslo_messaging/_drivers/amqpdriver.py:454 To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1565466/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp