← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1324479] [NEW] Fails to launch instance with "create volume from image"

 

Public bug reported:


In IceHouse something has changed in Glance and when I try to launch an instance with option "create volume from image" it fails, because some attributes are absent in image dict returned from Glance. Different types of images were tried. RDO packages are used.

>From /var/log/cinder/api.log:

2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/cinder/image/glance.py", line 434, in _extract_attributes
2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault     output[attr] = getattr(image, attr)
2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/warlock/model.py", line 69, in __getattr__
2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault     raise AttributeError(key)
2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault AttributeError: owner

The image's onwer in the database was indeed NULL (and that should be
ok). If I add an owner to the image, then another attribute will also be
not found:

2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/cinder/image/glance.py", line 434, in _extract_attributes
2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault     output[attr] = getattr(image, attr)
  2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/warlock/model.py", line 69, in __getattr__
  2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault     raise AttributeError(key)
  2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault AttributeError: deleted

The image dict returned from Glance was:

{u'status': u'active', u'tags': [], u'container_format': u'bare',
u'min_ram': 0, u'updated_at': u'2014-05-22T13:24:49Z', u'visibility':
u'public', u'file': u'/v2/images/ad385533-0bbb-40d8-a4db-
669c76677e24/file', u'min_disk': 0, u'id': u'ad385533-0bbb-40d8-a4db-
669c76677e24', u'size': 3145728, u'name': u'img04', u'checksum':
u'a5c6d1997966f85908c5640c5dfd7b79', u'created_at':
u'2014-05-22T13:24:48Z', u'disk_format': u'raw', u'protected': False,
u'direct_url':
u'rbd://2485eec9-d30a-4258-b959-937359ed61e8/images/ad385533-0bbb-40d8
-a4db-669c76677e24/snap', u'schema': u'/v2/schemas/image'}

I have no idea why some image attributes are absent, but one of the
possible fixes is (for IceHouce branch):

--- /a/cinder/image/glance.py	2014-04-21 12:58:43.000000000 -0700
+++ /b/cinder/image/glance.py	2014-05-29 03:23:31.000000000 -0700
@@ -431,7 +431,7 @@
         elif attr == 'checksum' and output['status'] != 'active':
             output[attr] = None
         else:
-            output[attr] = getattr(image, attr)
+            output[attr] = getattr(image, attr, None)
 
     output['properties'] = getattr(image, 'properties', {})

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: cinder glance

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

Title:
  Fails to launch instance with "create volume from image"

Status in OpenStack Compute (Nova):
  New

Bug description:
  
  In IceHouse something has changed in Glance and when I try to launch an instance with option "create volume from image" it fails, because some attributes are absent in image dict returned from Glance. Different types of images were tried. RDO packages are used.

  From /var/log/cinder/api.log:

  2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/cinder/image/glance.py", line 434, in _extract_attributes
  2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault     output[attr] = getattr(image, attr)
  2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/warlock/model.py", line 69, in __getattr__
  2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault     raise AttributeError(key)
  2014-05-29 00:47:52.185 32176 TRACE cinder.api.middleware.fault AttributeError: owner

  The image's onwer in the database was indeed NULL (and that should be
  ok). If I add an owner to the image, then another attribute will also
  be not found:

  2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/cinder/image/glance.py", line 434, in _extract_attributes
  2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault     output[attr] = getattr(image, attr)
    2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault   File "/usr/lib/python2.6/site-packages/warlock/model.py", line 69, in __getattr__
    2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault     raise AttributeError(key)
    2014-05-29 01:03:02.782 32176 TRACE cinder.api.middleware.fault AttributeError: deleted

  The image dict returned from Glance was:

  {u'status': u'active', u'tags': [], u'container_format': u'bare',
  u'min_ram': 0, u'updated_at': u'2014-05-22T13:24:49Z', u'visibility':
  u'public', u'file': u'/v2/images/ad385533-0bbb-40d8-a4db-
  669c76677e24/file', u'min_disk': 0, u'id': u'ad385533-0bbb-40d8-a4db-
  669c76677e24', u'size': 3145728, u'name': u'img04', u'checksum':
  u'a5c6d1997966f85908c5640c5dfd7b79', u'created_at':
  u'2014-05-22T13:24:48Z', u'disk_format': u'raw', u'protected': False,
  u'direct_url':
  u'rbd://2485eec9-d30a-4258-b959-937359ed61e8/images/ad385533-0bbb-40d8
  -a4db-669c76677e24/snap', u'schema': u'/v2/schemas/image'}

  I have no idea why some image attributes are absent, but one of the
  possible fixes is (for IceHouce branch):

  --- /a/cinder/image/glance.py	2014-04-21 12:58:43.000000000 -0700
  +++ /b/cinder/image/glance.py	2014-05-29 03:23:31.000000000 -0700
  @@ -431,7 +431,7 @@
           elif attr == 'checksum' and output['status'] != 'active':
               output[attr] = None
           else:
  -            output[attr] = getattr(image, attr)
  +            output[attr] = getattr(image, attr, None)
   
       output['properties'] = getattr(image, 'properties', {})

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


Follow ups

References