yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #69531
[Bug 1735188] Re: PciDevice UUID field not populated
Reviewed: https://review.openstack.org/523914
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e727437b0ccdcc15e8ccd9b7a7c232a878dadd2d
Submitter: Zuul
Branch: master
commit e727437b0ccdcc15e8ccd9b7a7c232a878dadd2d
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date: Wed Nov 29 10:36:22 2017 -0500
Fix ValueError when loading old pci device record
Old pci_devices records might not have a uuid value set
and when we load those out of the database, the
PciDevice._from_db_object code was blindly trying to set
the PciDevice.uuid field to None, which fails because the
PciDevice.uuid field is not nullable.
This change fixes the problem by skipping the 'uuid' field
if it's not set in the db record so that we can auto-generate
a uuid later and update the object with it, which also performs
our online data migration.
This is similar to how we handle the uuid online migration for
other objects like compute nodes, services and migrations.
Change-Id: I5de0979e280004c1ce0acc99d69cc96089a704f8
Closes-Bug: #1735188
** Changed in: nova
Status: In Progress => Fix Released
--
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/1735188
Title:
PciDevice UUID field not populated
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) pike series:
In Progress
Bug description:
After upgrade 16.0.0 to 17.0.0, we see an error when trying to boot VM with sriov port.
In nova logs I see this trace:
2017-11-23 12:09:36.028 1 INFO nova.service [req-af2ce51c-73fc-4ea4-9b67-0c71c80f031a - - - - -] Updating service version for nova-compute on compute-0.localdomain from 16 to 22
2017-11-23 12:09:36.284 1 WARNING nova.compute.monitors [req-af2ce51c-73fc-4ea4-9b67-0c71c80f031a - - - - -] Excluding nova.compute.monitors.cpu monitor virt_driver. Not in the list of enabl
ed monitors (CONF.compute_monitors).
2017-11-23 12:09:36.942 1 WARNING nova.pci.utils [req-af2ce51c-73fc-4ea4-9b67-0c71c80f031a - - - - -] No net device was found for VF 0000:05:11.0: PciDeviceNotFoundById: PCI device 0000:05:1
1.0 not found
2017-11-23 12:09:37.479 1 ERROR nova.compute.manager [req-af2ce51c-73fc-4ea4-9b67-0c71c80f031a - - - - -] Error updating resources for node compute-0.localdomain.: ValueError: Field `uuid' c
annot be None
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 123, in _object_dispatch
return getattr(target, method)(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 184, in wrapper
result = fn(cls, context, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/nova/objects/pci_device.py", line 458, in get_by_compute_node
db_dev_list)
File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 1121, in obj_make_list
**extra_args)
File "/usr/lib/python2.7/site-packages/nova/objects/pci_device.py", line 194, in _from_db_object
setattr(pci_device, key, db_dev[key])
File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 72, in setter
field_value = field.coerce(self, name, value)
File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py", line 193, in coerce
return self._null(obj, attr)
File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py", line 171, in _null
raise ValueError(_("Field `%s' cannot be None") % attr)
ValueError: Field `uuid' cannot be None
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1735188/+subscriptions
References