← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1501831] [NEW] Evacuate libvirt instance failed with error 'Cannot load 'disk_format' in the base class'

 

Public bug reported:

openstack-nova-12.0.0-201509202117

When evacuate a libvirt instance, it failed with the following error:
NotImplementedError: Cannot load 'disk_format' in the base class

2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2431, in spawn
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     block_device_info)
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 630, in get_disk_info
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     rescue)
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 537, in get_disk_mapping
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     disk_bus, cdrom_bus, root_device_name)
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 432, in get_root_info
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     if image_meta.disk_format == 'iso':
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 66, in getter
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     self.obj_load_attr(name)
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 555, in obj_load_attr
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     _("Cannot load '%s' in the base class") % attrname)
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher NotImplementedError: Cannot load 'disk_format' in the base class
2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher

When libvirt instance is evacuated, the image_meta is passed in with {}.
So, the disk_format is not populated with the ImageMeta object.

It's unclear to me what's the right way to fix this issue. Should change
ImageMeta's from_dict to make sure 'disk_format' is always populated or
we should add obj_load_attr method to ImageMeta

** Affects: nova
     Importance: Undecided
         Status: New

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

Title:
  Evacuate libvirt instance failed with error 'Cannot load 'disk_format'
  in the base class'

Status in OpenStack Compute (nova):
  New

Bug description:
  openstack-nova-12.0.0-201509202117

  When evacuate a libvirt instance, it failed with the following error:
  NotImplementedError: Cannot load 'disk_format' in the base class

  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2431, in spawn
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     block_device_info)
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 630, in get_disk_info
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     rescue)
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 537, in get_disk_mapping
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     disk_bus, cdrom_bus, root_device_name)
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/blockinfo.py", line 432, in get_root_info
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     if image_meta.disk_format == 'iso':
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 66, in getter
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     self.obj_load_attr(name)
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher   File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 555, in obj_load_attr
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher     _("Cannot load '%s' in the base class") % attrname)
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher NotImplementedError: Cannot load 'disk_format' in the base class
  2015-09-30 08:04:47.484 19026 ERROR oslo_messaging.rpc.dispatcher

  When libvirt instance is evacuated, the image_meta is passed in with
  {}. So, the disk_format is not populated with the ImageMeta object.

  It's unclear to me what's the right way to fix this issue. Should
  change ImageMeta's from_dict to make sure 'disk_format' is always
  populated or we should add obj_load_attr method to ImageMeta

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


Follow ups