** Also affects: nova/kilo
   Importance: Undecided
       Status: New

** Changed in: nova/kilo
       Status: New => In Progress

** Changed in: nova/kilo
   Importance: Undecided => High

** Changed in: nova/kilo
     Assignee: (unassigned) => Dan Smith (danms)

** Tags removed: kilo-backport-potential

-- 
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/1446082

Title:
  Instance without "extra" data crashes nova-compute

Status in OpenStack Compute (Nova):
  Fix Committed
Status in OpenStack Compute (nova) kilo series:
  In Progress

Bug description:
  I'm upgrading from Icehouse to Kilo. I have a single instance that was
  created in Icehouse. After the upgrade, nova-compute crashes because
  it's looking for instance "extra" data that is not there.

  To fix this, we need to check if there is any "extra" data for the
  instance before trying to read properties such as "numa_topology".

  # dpkg -l | grep nova
  ii  nova-common                         1:2015.1~rc1-0ubuntu1~cloud0          
all          OpenStack Compute - common files
  ii  nova-compute                        1:2015.1~rc1-0ubuntu1~cloud0          
all          OpenStack Compute - compute node base
  ii  nova-compute-kvm                    1:2015.1~rc1-0ubuntu1~cloud0          
all          OpenStack Compute - compute node (KVM)
  ii  nova-compute-libvirt                1:2015.1~rc1-0ubuntu1~cloud0          
all          OpenStack Compute - compute node libvirt support
  ii  python-nova                         1:2015.1~rc1-0ubuntu1~cloud0          
all          OpenStack Compute Python libraries
  ii  python-novaclient                   1:2.22.0-0ubuntu1~cloud0              
all          client library for OpenStack Compute API

  nova-compute.log:
  2015-04-20 17:35:09.214 15508 DEBUG oslo_concurrency.lockutils 
[req-43d3110a-cac7-425e-842c-f725bda91c10 - - - - -] Lock "compute_resources" 
acquired by "_update_available_resource" :: waited 0.000s inner 
/usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:444
  2015-04-20 17:35:09.299 15508 DEBUG oslo_concurrency.lockutils 
[req-43d3110a-cac7-425e-842c-f725bda91c10 - - - - -] Lock "compute_resources" 
released by "_update_available_resource" :: held 0.085s inner 
/usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py:456
  Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 457, in 
fire_timers
      timer()
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/timer.py", line 58, in 
__call__
      cb(*args, **kw)
    File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 214, 
in main
      result = function(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/nova/openstack/common/service.py", 
line 497, in run_service
      service.start()
    File "/usr/lib/python2.7/dist-packages/nova/service.py", line 183, in start
      self.manager.pre_start_hook()
    File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1287, 
in pre_start_hook
      self.update_available_resource(nova.context.get_admin_context())
    File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 6236, 
in update_available_resource
      rt.update_available_resource(context)
    File "/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", 
line 402, in update_available_resource
      self._update_available_resource(context, resources)
    File "/usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 
445, in inner
      return f(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", 
line 436, in _update_available_resource
      'numa_topology'])
    File "/usr/lib/python2.7/dist-packages/nova/objects/base.py", line 163, in 
wrapper
      result = fn(cls, context, *args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 
1152, in get_by_host_and_node
      expected_attrs)
    File "/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 
1068, in _make_instance_list
      expected_attrs=expected_attrs)
    File "/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 501, 
in _from_db_object
      db_inst.get('extra').get('numa_topology'))
  AttributeError: 'NoneType' object has no attribute 'get'
  2015-04-20 17:35:09.301 15508 ERROR nova.openstack.common.threadgroup 
[req-12483464-12a6-4b74-a671-bc6bb943b265 - - - - -] 'NoneType' object has no 
attribute 'get'
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup 
Traceback (most recent call last):
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/openstack/common/threadgroup.py", line 
145, in wait
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
x.wait()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/openstack/common/threadgroup.py", line 
47, in wait
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
return self.thread.wait()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 175, in wait
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
return self._exit_event.wait()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/eventlet/event.py", line 121, in wait
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
return hubs.get_hub().switch()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 294, in switch
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
return self.greenlet.switch()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 214, in main
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
result = function(*args, **kwargs)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/openstack/common/service.py", line 497, 
in run_service
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
service.start()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/service.py", line 183, in start
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
self.manager.pre_start_hook()
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1287, in 
pre_start_hook
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
self.update_available_resource(nova.context.get_admin_context())
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 6236, in 
update_available_resource
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
rt.update_available_resource(context)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", line 402, 
in update_available_resource
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
self._update_available_resource(context, resources)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 445, in 
inner
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
return f(*args, **kwargs)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", line 436, 
in _update_available_resource
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
'numa_topology'])
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/objects/base.py", line 163, in wrapper
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
result = fn(cls, context, *args, **kwargs)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 1152, in 
get_by_host_and_node
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
expected_attrs)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 1068, in 
_make_instance_list
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
expected_attrs=expected_attrs)
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup   File 
"/usr/lib/python2.7/dist-packages/nova/objects/instance.py", line 501, in 
_from_db_object
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup     
db_inst.get('extra').get('numa_topology'))
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup 
AttributeError: 'NoneType' object has no attribute 'get'
  2015-04-20 17:35:09.301 15508 TRACE nova.openstack.common.threadgroup

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1446082/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to