[openstack-dev] [nova] [pci device passthrough] fails with "NameError: global name '_' is not defined"

yongli he yongli.he at intel.com
Fri Sep 13 09:54:42 UTC 2013


于 2013年09月11日 21:27, Henry Gessau 写道:
> For the "TypeError: expected string or buffer" I have filed Bug #1223874.
>
>
> On Wed, Sep 11, at 7:41 am, yongli he <yongli.he at intel.com> wrote:
>
>> 于 2013年09月11日 05:38, David Kang 写道:
>>> ----- Original Message -----
>>>> From: "Russell Bryant" <rbryant at redhat.com>
>>>> To: "David Kang" <dkang at isi.edu>
>>>> Cc: "OpenStack Development Mailing List" <openstack-dev at lists.openstack.org>
>>>> Sent: Tuesday, September 10, 2013 5:17:15 PM
>>>> Subject: Re: [openstack-dev] [nova] [pci device passthrough] fails with "NameError: global name '_' is not defined"
>>>> On 09/10/2013 05:03 PM, David Kang wrote:
>>>>> ----- Original Message -----
>>>>>> From: "Russell Bryant" <rbryant at redhat.com>
>>>>>> To: "OpenStack Development Mailing List"
>>>>>> <openstack-dev at lists.openstack.org>
>>>>>> Cc: "David Kang" <dkang at isi.edu>
>>>>>> Sent: Tuesday, September 10, 2013 4:42:41 PM
>>>>>> Subject: Re: [openstack-dev] [nova] [pci device passthrough] fails
>>>>>> with "NameError: global name '_' is not defined"
>>>>>> On 09/10/2013 03:56 PM, David Kang wrote:
>>>>>>>    Hi,
>>>>>>>
>>>>>>>     I'm trying to test pci device passthrough feature.
>>>>>>> Havana3 is installed using Packstack on CentOS 6.4.
>>>>>>> Nova-compute dies right after start with error "NameError: global
>>>>>>> name '_' is not defined".
>>>>>>> I'm not sure if it is due to misconfiguration of nova.conf or bug.
>>>>>>> Any help will be appreciated.
>>>>>>>
>>>>>>> Here is the info:
>>>>>>>
>>>>>>> /etc/nova/nova.conf:
>>>>>>> pci_alias={"name":"test", "product_id":"7190", "vendor_id":"8086",
>>>>>>> "device_type":"ACCEL"}
>>>>>>>
>>>>>>> pci_passthrough_whitelist=[{"vendor_id":"8086","product_id":"7190"}]
>>>>>>>
>>>>>>>    With that configuration, nova-compute fails with the following
>>>>>>>    log:
>>>>>>>
>>>>>>>     File
>>>>>>>     "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>>>>     line 461, in _process_data
>>>>>>>       **args)
>>>>>>>
>>>>>>>     File
>>>>>>>     "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/dispatcher.py",
>>>>>>>     line 172, in dispatch
>>>>>>>       result = getattr(proxyobj, method)(ctxt, **kwargs)
>>>>>>>
>>>>>>>     File
>>>>>>>     "/usr/lib/python2.6/site-packages/nova/conductor/manager.py",
>>>>>>>     line 567, in object_action
>>>>>>>       result = getattr(objinst, objmethod)(context, *args, **kwargs)
>>>>>>>
>>>>>>>     File "/usr/lib/python2.6/site-packages/nova/objects/base.py",
>>>>>>>     line
>>>>>>>     141, in wrapper
>>>>>>>       return fn(self, ctxt, *args, **kwargs)
>>>>>>>
>>>>>>>     File
>>>>>>>     "/usr/lib/python2.6/site-packages/nova/objects/pci_device.py",
>>>>>>>     line 242, in save
>>>>>>>       self._from_db_object(context, self, db_pci)
>>>>>>>
>>>>>>> NameError: global name '_' is not defined
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup Traceback (most recent call
>>>>>>> last):
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/threadgroup.py",
>>>>>>> line 117, in wait
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup x.wait()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/threadgroup.py",
>>>>>>> line 49, in wait
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return self.thread.wait()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/eventlet/greenthread.py", line
>>>>>>> 166, in wait
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return self._exit_event.wait()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/eventlet/event.py", line 116, in
>>>>>>> wait
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return hubs.get_hub().switch()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 177,
>>>>>>> in switch
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return self.greenlet.switch()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/eventlet/greenthread.py", line
>>>>>>> 192, in main
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup result = function(*args,
>>>>>>> **kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/service.py",
>>>>>>> line 65, in run_service
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup service.start()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/service.py", line 164, in
>>>>>>> start
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup self.manager.pre_start_hook()
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line
>>>>>>> 805, in pre_start_hook
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> self.update_available_resource(nova.context.get_admin_context())
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line
>>>>>>> 4773, in update_available_resource
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> rt.update_available_resource(context)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/lockutils.py",
>>>>>>> line 246, in inner
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return f(*args, **kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py",
>>>>>>> line 318, in update_available_resource
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup self._sync_compute_node(context,
>>>>>>> resources)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py",
>>>>>>> line 347, in _sync_compute_node
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup self._update(context, resources,
>>>>>>> prune_stats=True)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py",
>>>>>>> line 420, in _update
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup self.pci_tracker.save(context)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/pci/pci_manager.py", line
>>>>>>> 126, in save
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup dev.save(context)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/objects/base.py", line 134,
>>>>>>> in wrapper
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup ctxt, self, fn.__name__, args,
>>>>>>> kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/conductor/rpcapi.py", line
>>>>>>> 497, in object_action
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup objmethod=objmethod, args=args,
>>>>>>> kwargs=kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/rpcclient.py", line 85, in
>>>>>>> call
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return
>>>>>>> self._invoke(self.proxy.call, ctxt, method, **kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/rpcclient.py", line 63, in
>>>>>>> _invoke
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return cast_or_call(ctxt, msg,
>>>>>>> **self.kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/proxy.py",
>>>>>>> line 126, in call
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup result = rpc.call(context,
>>>>>>> real_topic, msg, timeout)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/__init__.py",
>>>>>>> line 139, in call
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return _get_impl().call(CONF,
>>>>>>> context, topic, msg, timeout)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py",
>>>>>>> line 794, in call
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> rpc_amqp.get_connection_pool(conf,
>>>>>>> Connection))
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>>>> line 574, in call
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup rv = list(rv)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>>>> line 539, in __iter__
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup raise result
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup NameError: global name '_' is
>>>>>>> not
>>>>>>> defined
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup Traceback (most recent call
>>>>>>> last):
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>>>> line 461, in _process_data
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup **args)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/dispatcher.py",
>>>>>>> line 172, in dispatch
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup result = getattr(proxyobj,
>>>>>>> method)(ctxt, **kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/conductor/manager.py", line
>>>>>>> 567, in object_action
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup result = getattr(objinst,
>>>>>>> objmethod)(context, *args, **kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/objects/base.py", line 141,
>>>>>>> in wrapper
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup return fn(self, ctxt, *args,
>>>>>>> **kwargs)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup File
>>>>>>> "/usr/lib/python2.6/site-packages/nova/objects/pci_device.py",
>>>>>>> line
>>>>>>> 242, in save
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup self._from_db_object(context,
>>>>>>> self, db_pci)
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup
>>>>>>> 2013-09-10 12:52:23.774 14749 TRACE
>>>>>>> nova.openstack.common.threadgroup NameError: global name '_' is
>>>>>>> not
>>>>>>> defined
>>>>>> Can you file a bug for this?
>>>>>>
>>>>>> Fix here: https://review.openstack.org/45949
>>>>>>
>>>>>> --
>>>>>> Russell Bryant
>>>>>
>>>>>    Thanks, Russell.
>>>>>
>>>>>    The bug is reported.
>>>>> https://bugs.launchpad.net/nova/+bug/1223559
>>>>>
>>>>>    But, another error happens after the patch is applied. "TypeError:
>>>>>    expected string or buffer".
>>>>>
>>>>> ----- log message -----
>>>>>
>>>>>     File
>>>>>     "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>>     line 461, in _process_data
>>>>>       **args)
>>>>>
>>>>>     File
>>>>>     "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/dispatcher.py",
>>>>>     line 172, in dispatch
>>>>>       result = getattr(proxyobj, method)(ctxt, **kwargs)
>>>>>
>>>>>     File "/usr/lib/python2.6/site-packages/nova/conductor/manager.py",
>>>>>     line 567, in object_action
>>>>>       result = getattr(objinst, objmethod)(context, *args, **kwargs)
>>>>>
>>>>>     File "/usr/lib/python2.6/site-packages/nova/objects/base.py", line
>>>>>     141, in wrapper
>>>>>       return fn(self, ctxt, *args, **kwargs)
>>>>>
>>>>>     File
>>>>>     "/usr/lib/python2.6/site-packages/nova/objects/pci_device.py",
>>>>>     line 243, in save
>>>>>       self._from_db_object(context, self, db_pci)
>>>>>
>>>>>     File
>>>>>     "/usr/lib/python2.6/site-packages/nova/objects/pci_device.py",
>>>>>     line 150, in _from_db_object
>>>>>       pci_device.extra_info = jsonutils.loads(extra_info)
>>>>>
>>>>>     File
>>>>>     "/usr/lib/python2.6/site-packages/nova/openstack/common/jsonutils.py",
>>>>>     line 158, in loads
>>>>>       return json.loads(s)
>>>>>
>>>>>     File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
>>>>>       return _default_decoder.decode(s)
>>>>>
>>>>>     File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
>>>>>       obj, end = self.raw_decode(s, idx=_w(s, 0).end())
>>>>>
>>>>> TypeError: expected string or buffer
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup Traceback (most recent call last):
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/threadgroup.py",
>>>>> line 117, in wait
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup x.wait()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/threadgroup.py",
>>>>> line 49, in wait
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return self.thread.wait()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/eventlet/greenthread.py", line
>>>>> 166, in wait
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return self._exit_event.wait()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/eventlet/event.py", line 116, in
>>>>> wait
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return hubs.get_hub().switch()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 177,
>>>>> in switch
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return self.greenlet.switch()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/eventlet/greenthread.py", line
>>>>> 192, in main
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup result = function(*args, **kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/service.py",
>>>>> line 65, in run_service
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup service.start()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/service.py", line 164, in
>>>>> start
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup self.manager.pre_start_hook()
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line
>>>>> 805, in pre_start_hook
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> self.update_available_resource(nova.context.get_admin_context())
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line
>>>>> 4773, in update_available_resource
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> rt.update_available_resource(context)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/lockutils.py",
>>>>> line 246, in inner
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return f(*args, **kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py",
>>>>> line 318, in update_available_resource
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup self._sync_compute_node(context,
>>>>> resources)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py",
>>>>> line 347, in _sync_compute_node
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup self._update(context, resources,
>>>>> prune_stats=True)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/compute/resource_tracker.py",
>>>>> line 420, in _update
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup self.pci_tracker.save(context)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/pci/pci_manager.py", line
>>>>> 126, in save
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup dev.save(context)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/objects/base.py", line 134,
>>>>> in wrapper
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup ctxt, self, fn.__name__, args,
>>>>> kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/conductor/rpcapi.py", line
>>>>> 497, in object_action
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup objmethod=objmethod, args=args,
>>>>> kwargs=kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/rpcclient.py", line 85, in
>>>>> call
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return
>>>>> self._invoke(self.proxy.call, ctxt, method, **kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/rpcclient.py", line 63, in
>>>>> _invoke
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return cast_or_call(ctxt, msg,
>>>>> **self.kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/proxy.py",
>>>>> line 126, in call
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup result = rpc.call(context,
>>>>> real_topic, msg, timeout)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/__init__.py",
>>>>> line 139, in call
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return _get_impl().call(CONF,
>>>>> context, topic, msg, timeout)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py",
>>>>> line 794, in call
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup rpc_amqp.get_connection_pool(conf,
>>>>> Connection))
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>> line 574, in call
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup rv = list(rv)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>> line 539, in __iter__
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup raise result
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup TypeError: expected string or
>>>>> buffer
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup Traceback (most recent call last):
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/amqp.py",
>>>>> line 461, in _process_data
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup **args)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/dispatcher.py",
>>>>> line 172, in dispatch
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup result = getattr(proxyobj,
>>>>> method)(ctxt, **kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/conductor/manager.py", line
>>>>> 567, in object_action
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup result = getattr(objinst,
>>>>> objmethod)(context, *args, **kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/objects/base.py", line 141,
>>>>> in wrapper
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return fn(self, ctxt, *args,
>>>>> **kwargs)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/objects/pci_device.py", line
>>>>> 243, in save
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup self._from_db_object(context,
>>>>> self, db_pci)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/objects/pci_device.py", line
>>>>> 150, in _from_db_object
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup pci_device.extra_info =
>>>>> jsonutils.loads(extra_info)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib/python2.6/site-packages/nova/openstack/common/jsonutils.py",
>>>>> line 158, in loads
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return json.loads(s)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup return _default_decoder.decode(s)
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup File
>>>>> "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup obj, end = self.raw_decode(s,
>>>>> idx=_w(s, 0).end())
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup
>>>>> 2013-09-10 13:56:35.366 16736 TRACE
>>>>> nova.openstack.common.threadgroup TypeError: expected string or
>>>>> buffer
>>>> Try this:
>>>>
>>>> diff --git a/nova/objects/pci_device.py b/nova/objects/pci_device.py
>>>> index a83b8f3..d0a628a 100644
>>>> --- a/nova/objects/pci_device.py
>>>> +++ b/nova/objects/pci_device.py
>>>> @@ -145,7 +145,7 @@ class PciDevice(base.NovaPersistentObject,
>>>> base.NovaObject):
>>>> if key != 'extra_info':
>>>> pci_device[key] = db_dev[key]
>>>> else:
>>>> - extra_info = db_dev.get("extra_info")
>>>> + extra_info = db_dev.get("extra_info", '{}')
>>>> pci_device.extra_info = jsonutils.loads(extra_info)
>>>> pci_device._context = context
>>>> pci_device.obj_reset_changes()
>>>>
>>>>
>>>> --
>>>> Russell Bryant
>>>    The same error happens.
>>> The error message says "TypeError: expected string or buffer".
>> hi, David
>> could you paste the new trace to the bug ? (note it with the patch)
>> that's close to the fix i think.
a fix patch uploaded: https://review.openstack.org/#/c/46464/

Yongli He
>>
>> thanks
>> Yongli he
>>>    David
>>>
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>>
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list