nova/releasenotes/notes/bug-1851545-781c358939d96cea.yaml
Artom Lifshitz 00f1d4757e Update SRIOV port pci_slot when unshelving
There are a few things we need to do to make that work:

* Always set the PCIRequest's requester_id. Previously, this was only
  done for resource requests. The requester_id is the port UUID, so we
  can use that to correlate which port to update with which pci_slot
  (in the case of multiple SRIOV ports per instance).

  This has the side effect of making the fix work only for instances
  created *after* this patch has been applied. It's not ideal, but
  there does not appear to be a better way.

* Call setup_networks_on_host() within the instance_claim context.
  This means the instance's pci_devices are updated when we call it,
  allowing us to get the pci_slot information from them.

With the two previous changes in place, we can figure out the port's
new pci_slot in _update_port_binding_for_instance().

Closes: bug 1851545
Change-Id: Icfa8c1d6e84eab758af6223a2870078685584aaa
2021-04-23 10:07:04 -04:00

13 lines
524 B
YAML

---
fixes:
- |
`Bug 1851545 <https://bugs.launchpad.net/nova/+bug/1851545>`_, wherein
unshelving an instance with SRIOV Neutron ports did not update the port
binding's ``pci_slot`` and could cause libvirt PCI conflicts, has been
fixed.
.. important:: Constraints in the fix's implementation mean that it only
applies to instances booted **after** it has been applied. Existing
instances will still experience bug 1851545 after being shelved and
unshelved, even with the fix applied.