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

Henry Gessau gessau at cisco.com
Wed Sep 11 13:27:05 UTC 2013


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.
> 
> 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
> 



More information about the OpenStack-dev mailing list