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 <[email protected]> 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 <[email protected]> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

