Activity log for bug #1836439

Date Who What changed Old value New value Message
2019-07-13 09:25:48 David Li bug added bug
2019-07-13 09:26:29 David Li summary one extra spec key still exist when delete one flavor two extra_specs keys at same time one extra_specs key still exist when delete one flavor's two extra_specs keys at same time
2019-07-13 09:35:31 David Li description 1、posts two requests at same time to delete same flavor's two extra_specs keys 2、the two requests all get success from nova 3、finds only one extra_specs keys be deleted that seems when handles the first delete request, the delete function of /nova/api/openstack/compute/flavors_extraspecs.py gets target flavor's all extra_specs info, and then saves the all extra_specs info again except the deleted one. see [1][2][3]: [1] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L531 [2] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L480 [3] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L483 1、posts two requests at same time to delete same flavor's two extra_specs keys 2、the two requests all get success from nova 3、finds only one extra_specs keys be deleted that seems when handles the first delete request, the delete function of /nova/api/openstack/compute/flavors_extraspecs.py gets target flavor's all extra_specs info[1], and then saves the all extra_specs info except the deleted one again. However, the extra_specs info saved also contains the one that deleted by the seconde request[2][3][4]. see [1][2][3][4]: [1]https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/flavors_extraspecs.py#L118 [1] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L531 [2] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L480 [3] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L483
2019-07-13 09:37:19 David Li description 1、posts two requests at same time to delete same flavor's two extra_specs keys 2、the two requests all get success from nova 3、finds only one extra_specs keys be deleted that seems when handles the first delete request, the delete function of /nova/api/openstack/compute/flavors_extraspecs.py gets target flavor's all extra_specs info[1], and then saves the all extra_specs info except the deleted one again. However, the extra_specs info saved also contains the one that deleted by the seconde request[2][3][4]. see [1][2][3][4]: [1]https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/flavors_extraspecs.py#L118 [1] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L531 [2] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L480 [3] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L483 1、posts two requests at same time to delete same flavor's two extra_specs keys 2、the two requests all get success from nova 3、finds only one extra_specs keys be deleted that seems when handles the first delete request, the delete function of /nova/api/openstack/compute/flavors_extraspecs.py gets target flavor's all extra_specs info[1], and then saves the all extra_specs info except the deleted one again. However, the extra_specs info saved also contains the one that deleted by the seconde request[2][3][4]. see [1][2][3][4]: [1]https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/flavors_extraspecs.py#L118 [2] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L531 [3] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L480 [4] https://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L483
2019-07-14 09:00:46 Takashi Natsume tags race-condition
2019-07-22 16:00:27 Matt Riedemann nova: status New Triaged
2019-07-22 16:00:28 Matt Riedemann nova: importance Undecided Low