For the "TypeError: expected string or buffer" I have filed Bug #1223874.
On Wed, Sep 11, at 7:41 am, yongli he <yongli...@intel.com> wrote: > 于 2013年09月11日 05:38, David Kang 写道: >> >> ----- Original Message ----- >>> From: "Russell Bryant" <rbry...@redhat.com> >>> To: "David Kang" <dk...@isi.edu> >>> Cc: "OpenStack Development Mailing List" <openstack-dev@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" <rbry...@redhat.com> >>>>> To: "OpenStack Development Mailing List" >>>>> <openstack-dev@lists.openstack.org> >>>>> Cc: "David Kang" <dk...@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@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> > > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev