Booting with two identical PCI aliases on a host with a single matching dev succeeds but the instance will have no PCI allocations
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Unassigned | ||
Bug Description
Detected during reading the code.
Reproduction
1) configure a host with a single PCI passthrough device
2) configure two PCI aliases (a1, a2) with different names but each matching the above device
3) boot an instance with 'pci_passthroug
Expected result
The instance fails to schedule
Actual result
The instance schedules to the host but has no PCI allocations
The nova scheduler logs:
Selected host: compute1 failed to consume from instance. Error: PCI device request [InstancePCIReq
The nova compute logs:
Failed to allocate PCI devices for instance. Unassigning devices back to pools. This should not happen, since the scheduler should have accurate information, and allocation during claims is controlled via a hold on the compute node semaphore.
I think the root cause of the fault is that the PciDeviceStats.
I will push a functional reproduction test shortly.
| tags: | added: pci |

Fix proposed to branch: master /review. opendev. org/c/openstack /nova/+ /853516
Review: https:/