Deleting an image that is uploading causes a 500 on the upload request

Bug #1176174 reported by Alex Meade
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Glance
Fix Released
Medium
Alex Meade

Bug Description

This should probably return a better error message and a different HTTP status code

To Reproduce:

1) Begin uploading image
2) Delete image that is uploading
3) when upload completes a 500 error is returned

Glance-api logs:

2013-05-03 15:37:21.235 INFO glance.registry.client.v1.client [f817a181-4f2f-4639-85a1-1b62f3215e76 fa94365c2deb4f94bea15c770b6d0f4c 2023fa06c8954294a531bd3fc99dd50e] Registry client request PUT /images/9a090a6e-fcb5-44a7-a570-ce776bef70a0 raised NotFound
2013-05-03 15:37:21.236 ERROR glance.api.v1.images [f817a181-4f2f-4639-85a1-1b62f3215e76 fa94365c2deb4f94bea15c770b6d0f4c 2023fa06c8954294a531bd3fc99dd50e] Failed to upload image
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images Traceback (most recent call last):
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/api/v1/images.py", line 477, in _upload
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images update_data)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/registry/client/v1/api.py", line 166, in update_image_metadata
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images return c.update_image(image_id, image_meta, purge_props)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/registry/client/v1/client.py", line 167, in update_image
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images headers=headers)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/registry/client/v1/client.py", line 90, in do_request
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images **kwargs)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/common/client.py", line 62, in wrapped
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images return func(self, *args, **kwargs)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/common/client.py", line 376, in do_request
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images headers=headers)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/common/client.py", line 79, in wrapped
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images return func(self, method, url, body, headers)
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images File "/opt/stack/glance/glance/common/client.py", line 503, in _do_request
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images raise exception.NotFound(res.read())
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images NotFound: Image not found
2013-05-03 15:37:21.236 6094 TRACE glance.api.v1.images
2013-05-03 15:37:21.280 DEBUG glance.registry.client.v1.api [f817a181-4f2f-4639-85a1-1b62f3215e76 fa94365c2deb4f94bea15c770b6d0f4c 2023fa06c8954294a531bd3fc99dd50e] Updating image metadata for image 9a090a6e-fcb5-44a7-a570-ce776bef70a0... update_image_metadata /opt/stack/glance/glance/registry/client/v1/api.py:164
2013-05-03 15:37:21.280 DEBUG glance.common.client [f817a181-4f2f-4639-85a1-1b62f3215e76 fa94365c2deb4f94bea15c770b6d0f4c 2023fa06c8954294a531bd3fc99dd50e] Constructed URL: http://0.0.0.0:9191/images/9a090a6e-fcb5-44a7-a570-ce776bef70a0 _construct_url /opt/stack/glance/glance/common/client.py:397
2013-05-03 15:37:21.294 INFO glance.registry.client.v1.client [f817a181-4f2f-4639-85a1-1b62f3215e76 fa94365c2deb4f94bea15c770b6d0f4c 2023fa06c8954294a531bd3fc99dd50e] Registry client request PUT /images/9a090a6e-fcb5-44a7-a570-ce776bef70a0 raised NotFound
2013-05-03 15:37:21.294 ERROR glance.api.v1.images [f817a181-4f2f-4639-85a1-1b62f3215e76 fa94365c2deb4f94bea15c770b6d0f4c 2023fa06c8954294a531bd3fc99dd50e] Unable to kill image 9a090a6e-fcb5-44a7-a570-ce776bef70a0: NotFound('Image not found',)

Alex Meade (alex-meade)
Changed in glance:
assignee: Alex Meade (alex-meade) → nobody
status: In Progress → New
Alex Meade (alex-meade)
Changed in glance:
assignee: nobody → Alex Meade (alex-meade)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to glance (master)

Fix proposed to branch: master
Review: https://review.openstack.org/28809

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to glance (master)

Reviewed: https://review.openstack.org/28809
Committed: http://github.com/openstack/glance/commit/d2c5406a48d0f08f023fde508abc81f5d0cb25c5
Submitter: Jenkins
Branch: master

commit d2c5406a48d0f08f023fde508abc81f5d0cb25c5
Author: Alex Meade <email address hidden>
Date: Fri May 10 12:15:15 2013 -0400

    Respond with 412 after upload if image was deleted.

    When updating the image after upload, we should return an
    HTTPPreconditionFailed instead of a 500 error if the image cannot
    be found.

    This will also provide more information to nova when this occurs
    during snapshotting.

    Fixes bug 1176174

    Change-Id: I270ee129470323dae3919ed0a8c335eae7c24061

Changed in glance:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in glance:
milestone: none → havana-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in glance:
milestone: havana-1 → 2013.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.