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