[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