Sorry for slow response, I'm out of office to IDF, I will have a look on it today.
Thanks --jyh > -----Original Message----- > From: David Kang [mailto:dk...@isi.edu] > Sent: Wednesday, September 11, 2013 6:11 AM > To: OpenStack Development Mailing List > Subject: Re: [openstack-dev] [nova] [pci device passthrough] fails with > "NameError: global name '_' is not defined" > > > > ----- Original Message ----- > > From: "yongli he" <yongli...@intel.com> > > To: "OpenStack Development Mailing List" > <openstack-dev@lists.openstack.org> > > Sent: Wednesday, September 11, 2013 4:41:13 AM > > Subject: Re: [openstack-dev] [nova] [pci device passthrough] fails with > "NameError: global name '_' is not defined" > > 于 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/dispatch > er.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_qpi > d.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/dispatch > er.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/dispatch > er.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_qpi > d.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/dispatch > er.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 > > > > > Hi Yongli, > > I believe I patched the code, but there is no difference. The same error. > Since I installed it using packstack, the code is not as updated as the master > trunk. > I believe it is Havana 3. > Could it be the problem? > > Here is my code after applying the patch. > > 144 def _from_db_object(context, pci_device, db_dev): > 145 for key in pci_device.fields: > 146 if key != 'extra_info': > 147 pci_device[key] = db_dev.get(key) > 148 else: > 149 extra_info = db_dev.get("extra_info", '{}') > 150 pci_device.extra_info = jsonutils.loads(extra_info) > > Thanks, > 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