yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #64588
[Bug 1649852] Re: Concurrent calls to DELETE os-floating-ips can raise uncaught neutronclient.common.exceptions.NotFound
Reviewed: https://review.openstack.org/410815
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=d99197aece6451013d1de1f08c1af16832ee0e7e
Submitter: Jenkins
Branch: master
commit d99197aece6451013d1de1f08c1af16832ee0e7e
Author: Guillaume Espanel <guillaume.espanel@xxxxxxxxxxxxxxxxxx>
Date: Wed Dec 14 15:29:02 2016 +0100
Catch neutronclient.NotFound on floating deletion
In some cases, trying to delete a floating IP multiple times in a short
delay can trigger an exception beacause the floating ip deletion
operation is not atomic. If neutronclient's call to delete fails with a
NotFound error, we raise a 404 error to nova's client instead of a 500.
Change-Id: I49ea7e52073148457e794d641ed17d4ef58616f8
Co-Authored-By: Stephen Finucane <sfinucan@xxxxxxxxxx>
Closes-Bug: #1649852
** Changed in: nova
Status: In Progress => Fix Released
** Changed in: nova/ocata
Status: Confirmed => In Progress
** Changed in: nova/ocata
Assignee: (unassigned) => Matt Riedemann (mriedem)
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1649852
Title:
Concurrent calls to DELETE os-floating-ips can raise uncaught
neutronclient.common.exceptions.NotFound
Status in OpenStack Compute (nova):
Fix Released
Status in OpenStack Compute (nova) ocata series:
In Progress
Bug description:
Description
============
Concurrent calls to DELETE os-floating-ips/floating-ip-id can cause neutronclient to raise
a neutronclient.common.exceptions.NotFound exception uncaught by Nova which in turn returns
a 500 Error.
Steps to reproduce
===================
Tested on a mitaka devstack :
- source openrc
- run this humble script :
FIP_ID=`nova floating-ip-create | grep public | awk '{print($2)}'`
TENANT_ID=`keystone token-get | grep " tenant_id " | awk '{print($4)}'`
TOKEN_ID=`keystone token-get | grep " id " | awk '{print($4)}'`
curl -g -i -X DELETE http://127.0.0.1:8774/v2.1/$TENANT_ID/os-floating-ips/$FIP_ID -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN_ID"&
curl -g -i -X DELETE http://127.0.0.1:8774/v2.1/$TENANT_ID/os-floating-ips/$FIP_ID -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN_ID"&
curl -g -i -X DELETE http://127.0.0.1:8774/v2.1/$TENANT_ID/os-floating-ips/$FIP_ID -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN_ID"&
curl -g -i -X DELETE http://127.0.0.1:8774/v2.1/$TENANT_ID/os-floating-ips/$FIP_ID -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token: $TOKEN_ID"
Expected result
================
First call to go trough should return a 202, and all other calls
should probably return 404 or 409 if deletion is in progress but not
500.
Actual result
==============
Some calls to DELETE get a 500 Error response.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1649852/+subscriptions
References