← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1623089] [NEW] Fail to suspend guest with direct-physical ports

 

Public bug reported:

Description
===========

Suspending a guest with direct-physical ports (PCI passthrough) is
failing and the guest is set in error.

Steps to reproduce
==================

1) NETID=`neutron net-list | grep private | awk '{print $2}'`
2) PORTID=`neutron port-create $NETID --name sriov_port --binding:vnic_type direct-physical | grep "\ id\ " | awk '{ print $4 }'`
3) nova boot test --image=cirros-0.3.4-x86_64-uec  --nic port-id=$PORTID --flavor=m1.small
4) nova suspend test

Expected result
===============

Instance is successfully suspended.

Actual result
=============

Instance is put in error.

Stack trace:

2016-09-13 09:23:22.724 ERROR nova.compute.manager [req-ca82e24d-fc99-42c8-8bea-18e1c7185282 demo demo] [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1] Setting instance vm_state to ERROR
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1] Traceback (most recent call last):
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/compute/manager.py", line 6571, in _error_out_instance_on_exception
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     yield
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/compute/manager.py", line 4113, in suspend_instance
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     self.driver.suspend(context, instance)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2435, in suspend
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     guest.save_memory_state()
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/virt/libvirt/guest.py", line 426, in save_memory_state
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     self._domain.managedSave(0)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 186, in doit
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     result = proxy_call(self._autowrap, f, *args, **kwargs)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 144, in proxy_call
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     rv = execute(f, *args, **kwargs)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 125, in execute
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     six.reraise(c, e, tb)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     rv = meth(*args, **kwargs)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1397, in managedSave
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     if ret == -1: raise libvirtError ('virDomainManagedSave() failed', dom=self)
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1] libvirtError: Requested operation is not valid: domain has assigned non-USB host devices
2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]

Environment
===========

commit 5b207f9a1376b5edda9d4900ccadc4980d26dd1f
Merge: ba718e3 f5b7a33
Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
Date:   Tue Sep 13 01:46:47 2016 +0000

    Merge "Example & Parameter verification of os-security-group-
default-rules.inc"

** Affects: nova
     Importance: Undecided
         Status: New

-- 
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/1623089

Title:
  Fail to suspend guest with direct-physical ports

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ===========

  Suspending a guest with direct-physical ports (PCI passthrough) is
  failing and the guest is set in error.

  Steps to reproduce
  ==================

  1) NETID=`neutron net-list | grep private | awk '{print $2}'`
  2) PORTID=`neutron port-create $NETID --name sriov_port --binding:vnic_type direct-physical | grep "\ id\ " | awk '{ print $4 }'`
  3) nova boot test --image=cirros-0.3.4-x86_64-uec  --nic port-id=$PORTID --flavor=m1.small
  4) nova suspend test

  Expected result
  ===============

  Instance is successfully suspended.

  Actual result
  =============

  Instance is put in error.

  Stack trace:

  2016-09-13 09:23:22.724 ERROR nova.compute.manager [req-ca82e24d-fc99-42c8-8bea-18e1c7185282 demo demo] [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1] Setting instance vm_state to ERROR
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1] Traceback (most recent call last):
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/compute/manager.py", line 6571, in _error_out_instance_on_exception
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     yield
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/compute/manager.py", line 4113, in suspend_instance
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     self.driver.suspend(context, instance)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2435, in suspend
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     guest.save_memory_state()
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/opt/stack/nova/nova/virt/libvirt/guest.py", line 426, in save_memory_state
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     self._domain.managedSave(0)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 186, in doit
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     result = proxy_call(self._autowrap, f, *args, **kwargs)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 144, in proxy_call
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     rv = execute(f, *args, **kwargs)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 125, in execute
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     six.reraise(c, e, tb)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 83, in tworker
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     rv = meth(*args, **kwargs)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1397, in managedSave
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]     if ret == -1: raise libvirtError ('virDomainManagedSave() failed', dom=self)
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1] libvirtError: Requested operation is not valid: domain has assigned non-USB host devices
  2016-09-13 09:23:22.724 TRACE nova.compute.manager [instance: 6b069ca8-4bb8-4781-93a7-7d58cf8122a1]

  Environment
  ===========

  commit 5b207f9a1376b5edda9d4900ccadc4980d26dd1f
  Merge: ba718e3 f5b7a33
  Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
  Date:   Tue Sep 13 01:46:47 2016 +0000

      Merge "Example & Parameter verification of os-security-group-
  default-rules.inc"

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1623089/+subscriptions


Follow ups