← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2102038] [NEW] Multiple spec for a single PCI alias config causes HTTP 500 if PCI In Placement is enabled

 

Public bug reported:

Reproduction:
* define the [pci]alias config in a way that a single alias name is repeated and therefore associated with multiple spec dicts. E.g.:
    [pci]
    alias = { "name": "vf1", "product_id":"10ca", "vendor_id":"8086", "device_type":"type-VF"}
    alias = { "name": "vf1", "product_id":"f000", "vendor_id":"8086", "device_type":"type-VF"}

This would mean the alias vf1 can be fulfilled from devices with product
id 10ca OR f000.

* create a flavor using the vf1 alias by using the pci_passthrough:alias: vf1:1 flavor extra spec
* try to boot a VM with the flavor

Expected:
* either the VM boots successfully or the request is rejected that such PCI alias configuration is not supported

Actual:
* nova returns HTTP 500

Logs:

Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] Unexpected exception in API method: ValueError: PCI tracking in placement does not support multiple specs per PCI request
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi Traceback (most recent call last):
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 731, in wrapped
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return f(*args, **kwargs)
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/validation/__init__.py", line 135, in wrapper
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/validation/__init__.py", line 135, in wrapper
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/validation/__init__.py", line 135, in wrapper
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   [Previous line repeated 11 more times]
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/openstack/compute/servers.py", line 786, in create
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     instances, resv_id = self.compute_api.create(
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi                          ^^^^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 2237, in create
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return self._create_instance(
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 1764, in _create_instance
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     instances_to_build = self._provision_instances(
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 1580, in _provision_instances
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     with excutils.save_and_reraise_exception():
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_utils/excutils.py", line 227, in __exit__
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     self.force_reraise()
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     raise self.value
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 1447, in _provision_instances
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     req_spec = objects.RequestSpec.from_components(
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/objects/request_spec.py", line 655, in from_components
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     spec_obj.generate_request_groups_from_pci_requests()
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/objects/request_spec.py", line 525, in generate_request_groups_from_pci_requests
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     raise ValueError(
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi ValueError: PCI tracking in placement does not support multiple specs per PCI request
Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi 
Mar 11 17:24:09 aio devstack@n-api.service[235073]: INFO nova.api.openstack.wsgi [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
Mar 11 17:24:09 aio devstack@n-api.service[235073]: <class 'ValueError'>
Mar 11 17:24:09 aio devstack@n-api.service[235073]: DEBUG nova.api.openstack.wsgi [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] Returning 500 to user: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
Mar 11 17:24:09 aio devstack@n-api.service[235073]: <class 'ValueError'> {{(pid=235073) __call__ /opt/stack/nova/nova/api/openstack/wsgi.py:1014}}
Mar 11 17:24:09 aio devstack@n-api.service[235073]: INFO nova.api.openstack.requestlog [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] 192.168.121.77 "POST /compute/v2.1/servers" status: 500 len: 184 microversion: 2.96 time: 0.054444

** Affects: nova
     Importance: Undecided
     Assignee: Balazs Gibizer (balazs-gibizer)
         Status: New

** Changed in: nova
     Assignee: (unassigned) => Balazs Gibizer (balazs-gibizer)

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

Title:
  Multiple spec for a single PCI alias config causes HTTP 500 if PCI In
  Placement is enabled

Status in OpenStack Compute (nova):
  New

Bug description:
  Reproduction:
  * define the [pci]alias config in a way that a single alias name is repeated and therefore associated with multiple spec dicts. E.g.:
      [pci]
      alias = { "name": "vf1", "product_id":"10ca", "vendor_id":"8086", "device_type":"type-VF"}
      alias = { "name": "vf1", "product_id":"f000", "vendor_id":"8086", "device_type":"type-VF"}

  This would mean the alias vf1 can be fulfilled from devices with
  product id 10ca OR f000.

  * create a flavor using the vf1 alias by using the pci_passthrough:alias: vf1:1 flavor extra spec
  * try to boot a VM with the flavor

  Expected:
  * either the VM boots successfully or the request is rejected that such PCI alias configuration is not supported

  Actual:
  * nova returns HTTP 500

  Logs:

  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] Unexpected exception in API method: ValueError: PCI tracking in placement does not support multiple specs per PCI request
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi Traceback (most recent call last):
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 731, in wrapped
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return f(*args, **kwargs)
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/validation/__init__.py", line 135, in wrapper
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/validation/__init__.py", line 135, in wrapper
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/validation/__init__.py", line 135, in wrapper
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return func(*args, **kwargs)
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   [Previous line repeated 11 more times]
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/api/openstack/compute/servers.py", line 786, in create
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     instances, resv_id = self.compute_api.create(
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi                          ^^^^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 2237, in create
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     return self._create_instance(
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi            ^^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 1764, in _create_instance
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     instances_to_build = self._provision_instances(
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi                          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 1580, in _provision_instances
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     with excutils.save_and_reraise_exception():
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_utils/excutils.py", line 227, in __exit__
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     self.force_reraise()
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     raise self.value
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/compute/api.py", line 1447, in _provision_instances
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     req_spec = objects.RequestSpec.from_components(
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/objects/request_spec.py", line 655, in from_components
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     spec_obj.generate_request_groups_from_pci_requests()
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi   File "/opt/stack/nova/nova/objects/request_spec.py", line 525, in generate_request_groups_from_pci_requests
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi     raise ValueError(
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi ValueError: PCI tracking in placement does not support multiple specs per PCI request
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: ERROR nova.api.openstack.wsgi 
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: INFO nova.api.openstack.wsgi [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: <class 'ValueError'>
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: DEBUG nova.api.openstack.wsgi [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] Returning 500 to user: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: <class 'ValueError'> {{(pid=235073) __call__ /opt/stack/nova/nova/api/openstack/wsgi.py:1014}}
  Mar 11 17:24:09 aio devstack@n-api.service[235073]: INFO nova.api.openstack.requestlog [None req-abaf1336-36f9-4877-9b56-6c30f21ac6ca admin admin] 192.168.121.77 "POST /compute/v2.1/servers" status: 500 len: 184 microversion: 2.96 time: 0.054444

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