[pci-passthrough] Failed to launch vm after restarting nova compute

Bug #1435483 reported by Moshe Levi
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Dan Smith

Bug Description

my nova.conf contains pci_passthrough_whitelist parameter

launch vm after openstack installation the vm was successfully booted.
when restarting nova compute and then again trying to launch vm I can see the following error
"An object of type PciDevicePoolList is required"

please note it doesn't matter if it vm with normal or vm with direct port.

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote :

@Moshe,

Can you please specify which version of Nova? (Trunk?) and a reasonable traceback/log to better diagnose the issue?

Revision history for this message
Moshe Levi (moshele) wrote :

@Davanum
yes it is nova trunk.
nova-compute log is attached.
you can see the trace when I try to delete the vm in error.
in Line 968 you can see the failure on create
2015-03-23 22:30:11.080 11235 DEBUG nova.compute.utils [-] [instance: 0ddeb177-3abf-4477-9336-4d9cc8787f5d] An object of type PciDevicePoolList is required here notify_about_instance_usage /.autodirect/mtrswgwork/moshele/openstack/nova/nova/compute/utils.py:310
2015-03-23 22:30:11.081 11235 DEBUG nova.compute.manager [-] [instance: 0ddeb177-3abf-4477-9336-4d9cc8787f5d] Build of instance 0ddeb177-3abf-4477-9336-4d9cc8787f5d was re-scheduled: An object of type PciDevicePoolList is required here _do_build_and_run_instance /.autodirect/mtrswgwork/moshele/openstack/nova/nova/compute/manager.py:2189
(I think in this case the log level should be Error not Debug)

I started to debug this issue and I saw the in that one of resources sent to the conductor is "pci_device_pools" which is a list for example ('pci_device_pools': [{'count': 7, 'vendor_id': u'15b3', 'product_id': u'1004', 'tags': {u'numa_node': None, u'physical_network': u'physnet1'}}]) When this resource saved into the database I get the above error.

If I removing the pci_device_pools key from the resources (remove it from self.compute_node in the resource_tracker) it will fix the issue, but I am not sure that it is the correct way to go.

Revision history for this message
Sean Dague (sdague) wrote :

Please provide your nova.conf, there have been changes in the format here, and that might be part of the issue.

Changed in nova:
status: New → Incomplete
Revision history for this message
Moshe Levi (moshele) wrote :

nova.conf attached

Changed in nova:
assignee: nobody → Dan Smith (danms)
status: Incomplete → In Progress
Changed in nova:
importance: Undecided → High
milestone: none → kilo-rc1
tags: added: unified-objects
Changed in nova:
importance: High → Medium
Changed in nova:
assignee: Dan Smith (danms) → Satyanarayana Patibandla (satya-patibandla)
Changed in nova:
assignee: Satyanarayana Patibandla (satya-patibandla) → Dan Smith (danms)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

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

commit 5b77c108f14f2bcd42fecfcd060331e57a2e07dd
Author: Dan Smith <email address hidden>
Date: Tue Mar 24 07:49:41 2015 -0700

    Convert pci_device_pools dict to object before passing to scheduler

    This also fixes other issues in the resource tracker around inconsistent
    use of legacy pci_stats usage from when we were dealing with a db model
    compute node, to pci_device_pools to be in line with objects.

    Closes-Bug: #1435483
    Change-Id: I56a9aa8b3e81a22d57e83f956bbcf1e42599a954

Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: kilo-rc1 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.