Resend after the HK summit, hope someone can give me hint on it. Thanks --jyh
> -----Original Message----- > From: Jiang, Yunhong [mailto:yunhong.ji...@intel.com] > Sent: Thursday, November 07, 2013 5:39 PM > To: openstack-dev@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@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev