[openstack-dev] [nova][api] Is this a potential issue

Jiang, Yunhong yunhong.jiang at intel.com
Mon Nov 11 17:27:20 UTC 2013


Resend after the HK summit, hope someone can give me hint on it.

Thanks
--jyh

> -----Original Message-----
> From: Jiang, Yunhong [mailto:yunhong.jiang at intel.com]
> Sent: Thursday, November 07, 2013 5:39 PM
> To: openstack-dev at lists.openstack.org
> Subject: [openstack-dev] [nova][api] Is this a potential issue
> 
> Hi, all
> 	I'm a bit confused of followed code in ./compute/api.py, which will be
> invoked by api/openstack/compute/servers.py, _action_revert_resize().
> 	From the code seems there is a small windows between get the
> migration object and update migration.status. If another API request
> comes at this small window, it means two utility will try to revert resize at
> same time. Is this a potential issue?
> 	Currently implementation already roll back the reservation if
> something wrong, but not sure if we should update state to "reverting" as
> a transaction in get_by_instance_and_status()?
> 
> --jyh
> 
>     def revert_resize(self, context, instance):
>         """Reverts a resize, deleting the 'new' instance in the process."""
>         elevated = context.elevated()
>         migration =
> migration_obj.Migration.get_by_instance_and_status(
>             elevated, instance.uuid, 'finished')
> 	>>>>>>>>>>>>>>>>>>>>>>Here we get the migration object
> 
>         # reverse quota reservation for increased resource usage
>         deltas = self._reverse_upsize_quota_delta(context, migration)
>         reservations = self._reserve_quota_delta(context, deltas)
> 
>         instance.task_state = task_states.RESIZE_REVERTING
>         instance.save(expected_task_state=None)
> 
>         migration.status = 'reverting'			>>>>>>>>>>>>>>Here
> we update the status.
>         migration.save()
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list