yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #15150
[Bug 1309067] Re: Compute _init_instance changes instance from object to dict causing an AttributeError
** Also affects: nova/icehouse
Importance: Undecided
Status: New
** Changed in: nova/icehouse
Status: New => Fix Committed
** Changed in: nova/icehouse
Milestone: None => 2014.1.1
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1309067
Title:
Compute _init_instance changes instance from object to dict causing an
AttributeError
Status in OpenStack Compute (Nova):
Fix Committed
Status in OpenStack Compute (nova) icehouse series:
Fix Committed
Bug description:
On a compute restart sometimes the following error occurs and the
compute fails to start:
2014-04-17 03:36:09.527 26115 ERROR nova.openstack.common.threadgroup [-] 'dict' object has no attribute 'task_state'
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/openstack/common/threadgroup.py", line 117, in wait
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup x.wait()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/openstack/common/threadgroup.py", line 49, in wait
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup return self.thread.wait()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/eventlet/greenthread.py", line 168, in wait
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup return self._exit_event.wait()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/eventlet/event.py", line 116, in wait
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup return hubs.get_hub().switch()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 187, in switch
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup return self.greenlet.switch()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/eventlet/greenthread.py", line 194, in main
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup result = function(*args, **kwargs)
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/openstack/common/service.py", line 480, in run_service
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup service.start()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/service.py", line 177, in start
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup self.manager.init_host()
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/compute/manager.py", line 871, in init_host
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup self._init_instance(context, instance)
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup File "/opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/compute/manager.py", line 731, in _init_instance
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup if instance.task_state == task_states.DELETING:
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup AttributeError: 'dict' object has no attribute 'task_state'
2014-04-17 03:36:09.527 26115 TRACE nova.openstack.common.threadgroup
2014-04-17 04:01:15.145 27377 DEBUG nova.servicegroup.api [-] ServiceGroup driver defined as an instance of db __new__ /opt/rackstack/615.9/nova/lib/python2.6/site-packages/nova/servicegroup/api.py:62
The issue appears to lie with the line immediately above which performs an instance update and overwrites the instance object with a dict.
instance = self._instance_update(context, instance.uuid, task_state=None)
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1309067/+subscriptions
References