Public bug reported:
Image GET TypeError: 'ImageTarget' object does not support item
assignment
How to get here:
Deploy devstack w/ ceph:
[glance_store]
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
stores = file, http, rbd
default_store = rbd
filesystem_store_datadir = /opt/stack/data/glance/images/
$ cinder create --image 7d007552-9b2c-4231-bff7-1fbabb4445ec 1
(cirros image from devstack)
$ nova boot --poll --flavor m1.nano --block-device-mapping vda=<id>:::0
vm1
$ nova stop vm1
$ nova image-create vm1 vm1-snap
$ cinder create --image vm1-snap --display-name vol2 3
fails due to another issue in Cinder/Glance
$ cinder create --image vm1-snap --display-name vol2 3
now fails w/ Glance HTTP 500
2017-02-13 13:20:26.058 INFO eventlet.wsgi.server
[req-6be93b6d-5248-44d7-a711-9d6966dd6ac1 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] 192.168.110.227 - - [13/Feb/2017 13:20:26]
"GET /v2/schemas/image HTTP/1.1" 200 4361 0.048478
2017-02-13 13:20:26.139 DEBUG eventlet.wsgi.server [-] (15823) accepted
('192.168.110.227', 53262) from (pid=15823) server
/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py:868
2017-02-13 13:20:26.141 DEBUG glance.api.middleware.version_negotiation [-]
Determining version of request: GET
/v2/images/34ffff73-8467-4b2e-865b-685b0da33388/file Accept: */* from
(pid=15823) process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:46
2017-02-13 13:20:26.141 DEBUG glance.api.middleware.version_negotiation [-]
Using url versioning from (pid=15823) process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:58
2017-02-13 13:20:26.142 DEBUG glance.api.middleware.version_negotiation [-]
Matched version: v2 from (pid=15823) process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:70
2017-02-13 13:20:26.142 DEBUG glance.api.middleware.version_negotiation [-] new
path /v2/images/34ffff73-8467-4b2e-865b-685b0da33388/file from (pid=15823)
process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:71
/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py:135:
UserWarning: Using keystoneclient sessions has been deprecated. Please update
your software to use keystoneauth1.
warnings.warn('Using keystoneclient sessions has been deprecated. '
2017-02-13 13:20:26.228 DEBUG glance.api.middleware.cache
[req-d0f6f2ab-11e3-4f38-b954-686ec4448764 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] Cache hit for image
'34ffff73-8467-4b2e-865b-685b0da33388' from (pid=15823) process_request
/opt/stack/glance/glance/api/middleware/cache.py:166
2017-02-13 13:20:26.229 INFO eventlet.wsgi.server
[req-d0f6f2ab-11e3-4f38-b954-686ec4448764 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 481, in
handle_one_response
result = self.application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line
126, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line
126, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line
126, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/opt/stack/glance/glance/common/wsgi.py", line 804, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/osprofiler/web.py", line 108, in
__call__
return request.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py",
line 335, in __call__
response = req.get_response(self._app)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/opt/stack/glance/glance/common/wsgi.py", line 804, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299, in
send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263, in
call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/opt/stack/glance/glance/common/wsgi.py", line 801, in __call__
response = self.process_request(req)
File "/opt/stack/glance/glance/api/middleware/cache.py", line 171, in
process_request
return method(request, image_id, image_iterator, image_metadata)
File "/opt/stack/glance/glance/api/middleware/cache.py", line 226, in
_process_v2_request
self._verify_metadata(image_meta)
File "/opt/stack/glance/glance/api/middleware/cache.py", line 75, in
_verify_metadata
image_meta['size'] = self.cache.get_image_size(image_meta['id'])
TypeError: 'ImageTarget' object does not support item assignment
2017-02-13 13:20:26.230 INFO eventlet.wsgi.server [req-d0f6f2ab-
11e3-4f38-b954-686ec4448764 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] 192.168.110.227 - - [13/Feb/2017
13:20:26] "GET /v2/images/34ffff73-8467-4b2e-865b-685b0da33388/file
HTTP/1.1" 500 139 0.089137
$ glance image-show 34ffff73-8467-4b2e-865b-685b0da33388
+----------------------+----------------------------------------------------------------------------------+
| Property | Value
|
+----------------------+----------------------------------------------------------------------------------+
| base_image_ref |
|
| bdm_v2 | True
|
| block_device_mapping | [{"guest_format": null, "boot_index": 0,
"delete_on_termination": false, |
| | "no_device": null, "snapshot_id":
"cd8a5b21-50b6-4253-a42f-044856ef0a57", |
| | "device_name": "/dev/vda", "disk_bus": "virtio",
"image_id": null, |
| | "source_type": "snapshot", "tag": null, "device_type":
"disk", "volume_id": |
| | null, "destination_type": "volume", "volume_size": 1}]
|
| checksum | d41d8cd98f00b204e9800998ecf8427e
|
| container_format | bare
|
| created_at | 2017-02-13T16:49:50Z
|
| disk_format | qcow2
|
| id | 34ffff73-8467-4b2e-865b-685b0da33388
|
| kernel_id | 64ee5ed6-a0b1-4862-abb2-0afbda59cbc8
|
| locations | [{"url":
"rbd://6c1d8b91-f42a-41ec-b780-4c49defce5e6/images/34ffff73-8467-4b2e- |
| | 865b-685b0da33388/snap", "metadata": {}}]
|
| min_disk | 0
|
| min_ram | 0
|
| name | vm1-snap
|
| owner | 00b4a870ac264e8d8778766dd7c13aee
|
| protected | False
|
| ramdisk_id | 7c7da0b4-0a2c-4888-8ad8-59e5254509f6
|
| root_device_name | /dev/vda
|
| size | 0
|
| status | active
|
| tags | []
|
| updated_at | 2017-02-13T16:49:51Z
|
| virtual_size | None
|
| visibility | private
|
+----------------------+----------------------------------------------------------------------------------+
** Affects: glance
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Glance.
https://bugs.launchpad.net/bugs/1664317
Title:
Image GET TypeError: 'ImageTarget' object does not support item
assignment
Status in Glance:
New
Bug description:
Image GET TypeError: 'ImageTarget' object does not support item
assignment
How to get here:
Deploy devstack w/ ceph:
[glance_store]
rbd_store_pool = images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
stores = file, http, rbd
default_store = rbd
filesystem_store_datadir = /opt/stack/data/glance/images/
$ cinder create --image 7d007552-9b2c-4231-bff7-1fbabb4445ec 1
(cirros image from devstack)
$ nova boot --poll --flavor m1.nano --block-device-mapping
vda=<id>:::0 vm1
$ nova stop vm1
$ nova image-create vm1 vm1-snap
$ cinder create --image vm1-snap --display-name vol2 3
fails due to another issue in Cinder/Glance
$ cinder create --image vm1-snap --display-name vol2 3
now fails w/ Glance HTTP 500
2017-02-13 13:20:26.058 INFO eventlet.wsgi.server
[req-6be93b6d-5248-44d7-a711-9d6966dd6ac1 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] 192.168.110.227 - - [13/Feb/2017 13:20:26]
"GET /v2/schemas/image HTTP/1.1" 200 4361 0.048478
2017-02-13 13:20:26.139 DEBUG eventlet.wsgi.server [-] (15823) accepted
('192.168.110.227', 53262) from (pid=15823) server
/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py:868
2017-02-13 13:20:26.141 DEBUG glance.api.middleware.version_negotiation [-]
Determining version of request: GET
/v2/images/34ffff73-8467-4b2e-865b-685b0da33388/file Accept: */* from
(pid=15823) process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:46
2017-02-13 13:20:26.141 DEBUG glance.api.middleware.version_negotiation [-]
Using url versioning from (pid=15823) process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:58
2017-02-13 13:20:26.142 DEBUG glance.api.middleware.version_negotiation [-]
Matched version: v2 from (pid=15823) process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:70
2017-02-13 13:20:26.142 DEBUG glance.api.middleware.version_negotiation [-]
new path /v2/images/34ffff73-8467-4b2e-865b-685b0da33388/file from (pid=15823)
process_request
/opt/stack/glance/glance/api/middleware/version_negotiation.py:71
/usr/local/lib/python2.7/dist-packages/keystoneauth1/adapter.py:135:
UserWarning: Using keystoneclient sessions has been deprecated. Please update
your software to use keystoneauth1.
warnings.warn('Using keystoneclient sessions has been deprecated. '
2017-02-13 13:20:26.228 DEBUG glance.api.middleware.cache
[req-d0f6f2ab-11e3-4f38-b954-686ec4448764 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] Cache hit for image
'34ffff73-8467-4b2e-865b-685b0da33388' from (pid=15823) process_request
/opt/stack/glance/glance/api/middleware/cache.py:166
2017-02-13 13:20:26.229 INFO eventlet.wsgi.server
[req-d0f6f2ab-11e3-4f38-b954-686ec4448764 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 481,
in handle_one_response
result = self.application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line
126, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line
126, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/oslo_middleware/base.py", line
126, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/opt/stack/glance/glance/common/wsgi.py", line 804, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/osprofiler/web.py", line 108,
in __call__
return request.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File
"/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py",
line 335, in __call__
response = req.get_response(self._app)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/opt/stack/glance/glance/common/wsgi.py", line 804, in __call__
response = req.get_response(self.application)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1299,
in send
application, catch_exc_info=False)
File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1263,
in call_application
app_iter = application(self.environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in
__call__
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in
call_func
return self.func(req, *args, **kwargs)
File "/opt/stack/glance/glance/common/wsgi.py", line 801, in __call__
response = self.process_request(req)
File "/opt/stack/glance/glance/api/middleware/cache.py", line 171, in
process_request
return method(request, image_id, image_iterator, image_metadata)
File "/opt/stack/glance/glance/api/middleware/cache.py", line 226, in
_process_v2_request
self._verify_metadata(image_meta)
File "/opt/stack/glance/glance/api/middleware/cache.py", line 75, in
_verify_metadata
image_meta['size'] = self.cache.get_image_size(image_meta['id'])
TypeError: 'ImageTarget' object does not support item assignment
2017-02-13 13:20:26.230 INFO eventlet.wsgi.server [req-d0f6f2ab-
11e3-4f38-b954-686ec4448764 f1e126d0378c47da9f74f8bfc19b7a33
00b4a870ac264e8d8778766dd7c13aee] 192.168.110.227 - - [13/Feb/2017
13:20:26] "GET /v2/images/34ffff73-8467-4b2e-865b-685b0da33388/file
HTTP/1.1" 500 139 0.089137
$ glance image-show 34ffff73-8467-4b2e-865b-685b0da33388
+----------------------+----------------------------------------------------------------------------------+
| Property | Value
|
+----------------------+----------------------------------------------------------------------------------+
| base_image_ref |
|
| bdm_v2 | True
|
| block_device_mapping | [{"guest_format": null, "boot_index": 0,
"delete_on_termination": false, |
| | "no_device": null, "snapshot_id":
"cd8a5b21-50b6-4253-a42f-044856ef0a57", |
| | "device_name": "/dev/vda", "disk_bus": "virtio",
"image_id": null, |
| | "source_type": "snapshot", "tag": null,
"device_type": "disk", "volume_id": |
| | null, "destination_type": "volume", "volume_size":
1}] |
| checksum | d41d8cd98f00b204e9800998ecf8427e
|
| container_format | bare
|
| created_at | 2017-02-13T16:49:50Z
|
| disk_format | qcow2
|
| id | 34ffff73-8467-4b2e-865b-685b0da33388
|
| kernel_id | 64ee5ed6-a0b1-4862-abb2-0afbda59cbc8
|
| locations | [{"url":
"rbd://6c1d8b91-f42a-41ec-b780-4c49defce5e6/images/34ffff73-8467-4b2e- |
| | 865b-685b0da33388/snap", "metadata": {}}]
|
| min_disk | 0
|
| min_ram | 0
|
| name | vm1-snap
|
| owner | 00b4a870ac264e8d8778766dd7c13aee
|
| protected | False
|
| ramdisk_id | 7c7da0b4-0a2c-4888-8ad8-59e5254509f6
|
| root_device_name | /dev/vda
|
| size | 0
|
| status | active
|
| tags | []
|
| updated_at | 2017-02-13T16:49:51Z
|
| virtual_size | None
|
| visibility | private
|
+----------------------+----------------------------------------------------------------------------------+
To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/1664317/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp