pci passthrough: unicode object support does not work with the unkown fileds

Bug #1240383 reported by Yongli He
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Won't Fix
Undecided
Yongli He

Bug Description

2013-10-17 06:00:23.066 ERROR nova.openstack.common.threadgroup [-] (u'A string is required here, not %s', 'list')
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):

objects support now requied known the value you saved in the objects, but pci extra_info design for 'unkonw' usage. so can not get the type info.

refer the trace:

2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/openstack/common/threadgroup.py", line 117, in wait
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup x.wait()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/openstack/common/threadgroup.py", line 49, in wait
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return self.thread.wait()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 168, in wait
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return self._exit_event.wait()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 116, in wait
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return hubs.get_hub().switch()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 187, in switch
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return self.greenlet.switch()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup result = function(*args, **kwargs)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/openstack/common/service.py", line 65, in run_service
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup service.start()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/service.py", line 164, in start
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup self.manager.pre_start_hook()
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/compute/manager.py", line 801, in pre_start_hook
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup self.update_available_resource(nova.context.get_admin_context())
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/compute/manager.py", line 4868, in update_available_resource
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup rt.update_available_resource(context)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/openstack/common/lockutils.py", line 246, in inner
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return f(*args, **kwargs)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/compute/resource_tracker.py", line 292, in update_available_resource
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup 'pci_passthrough_devices')))
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/pci/pci_manager.py", line 189, in set_hvdevs
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup dev_obj = pci_device.PciDevice.create(dev)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/pci_device.py", line 174, in create
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup pci_device.update_device(dev_dict)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/pci_device.py", line 136, in update_device
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup self.extra_info = extra_info
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/base.py", line 68, in setter
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup field.coerce(self, name, value))
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/fields.py", line 163, in coerce
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return self._type.coerce(obj, attr, value)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/fields.py", line 308, in coerce
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup obj, '%s["%s"]' % (attr, key), element)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/fields.py", line 163, in coerce
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup return self._type.coerce(obj, attr, value)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup File "/opt/stack/nova/nova/objects/fields.py", line 214, in coerce
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup value.__class__.__name__)
2013-10-17 06:00:23.066 TRACE nova.openstack.common.threadgroup ValueError: (u'A string is required here, not %s', 'list')

Yongli He (yongli-he)
Changed in nova:
assignee: nobody → Yongli He (yongli-he)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/52028

Changed in nova:
status: New → In Progress
Revision history for this message
Joe Gordon (jogo) wrote :

Is this still valid, the patch was abandoned?

Changed in nova:
status: In Progress → New
status: New → Incomplete
Revision history for this message
Sean Dague (sdague) wrote :

The object model specifically is designed to not allow arbitrary fields.

Changed in nova:
status: Incomplete → Invalid
status: Invalid → Won't Fix
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.