Replace locations with multi-requests returns wrong result

Bug #1529572 reported by wangxiyuan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Glance
In Progress
Undecided
Unassigned

Bug Description

Env: glance-master,

Reproduce:
1. Suppose there is an image with its location in Glance already.

2. send a location-update request with two bodies, like:

[
    {
      "op":"replace",
   "path":"/locations",
      "value":[
      ]
   },

   {
      "op":"replace",
   "path":"/locations",
      "value":[
        {
            "url": "swift+http://admin:admin:root@10.229.45.145:35357/v3/glance/wrong-test.img",
             #note: this is a wrong location url.
            "metadata": {}
        }
      ]
   }
]

The first body is to set the location to empty. The second body is to set the location to a new one, but the url is wrong.

3. the Glance raise an error: Invalid locations. Because that I send a wrong url to Glance.

4. Show the image.

Expect result:
the image's status is 'queued' and the location is empty.

Actual result:
the image's status is 'active', but the location is empty.

The reason is that Glance save the image' information to db when the hole request is over. But i give the wrong url, so that the the location has been removed and image didn't be saved to db.

So IMO, we should take db saving each time we change the location.

wangxiyuan (wangxiyuan)
Changed in glance:
assignee: nobody → wangxiyuan (wangxiyuan)
description: updated
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/261927

Changed in glance:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on glance (master)

Change abandoned by wangxiyuan (<email address hidden>) on branch: master
Review: https://review.openstack.org/261927

wangxiyuan (wangxiyuan)
Changed in glance:
assignee: wangxiyuan (wangxiyuan) → nobody
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.