← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1677621] Re: Port update exception on nova unshelve for instance with PCI devices

 

Reviewed:  https://review.openstack.org/453938
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=c2ff276c841934ff147aab836a4bd099297fb46b
Submitter: Jenkins
Branch:    master

commit c2ff276c841934ff147aab836a4bd099297fb46b
Author: Steven Webster <steven.webster@xxxxxxxxxxxxx>
Date:   Mon Mar 27 12:18:23 2017 -0400

    Fix port update exception when unshelving an instance with PCI devices
    
    It is possible that _update_port_binding_for_instance() is called
    without a migration object, such as when a user unshelves an instance.
    
    If the instance has a port(s) with a PCI device binding, the current
    logic extracts a pci mapping from old to new devices from the migration
    object and migration context.  If a 'new' device is not found in the
    PCI mapping, an exception is thrown.
    
    In the case of an unshelve, there is no migration object (or migration
    context), and as such we have an empty pci mapping.
    
    This fix will only check for a new device if we have a migration object.
    
    Closes-Bug: 1677621
    Change-Id: I578153ca862753ef5b8041ee3853d3c7b2e2be30


** 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/1677621

Title:
  Port update exception on nova unshelve for instance with PCI devices

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Description
  ===========
  If an instance with PCI devices (SRIOV, or passthrough) is shelved, a port update exception will be seen and the instance will go into Error state when it is unshelved.

  The nova API exception message is similar to:

  "Unable to correlate PCI slot 0000:0d:00.1"

  Steps to reproduce
  ==================
  1. Launch an instance with SRIOV or PCI passthrough port bindings.

  2. nova shelve <instance_uuid>

  -- wait for nova instance status SHELVED_OFFLOADED --

  3. nova unshelve <instance_uuid>

  Expected result
  ===============
  If there are resources available, the instance should be able to claim PCI devices and successfully (re)launch.

  Actual result
  =============
  - Instance in error state
  - Exception in nova api logs.

  Environment
  ===========
  1. Exact version of OpenStack you are running: Ocata, devstack

  2. Which hypervisor did you use? Libvirt + KVM

  2. Which storage type did you use? LVM

  3. Which networking type did you use? Neutron, OVS

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


References