yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #00353
[Bug 1080638] Re: delete router fails with internal sever error when floatingip association remains
** Changed in: quantum/folsom
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to quantum.
https://bugs.launchpad.net/bugs/1080638
Title:
delete router fails with internal sever error when floatingip
association remains
Status in OpenStack Quantum (virtual network service):
Fix Released
Status in quantum folsom series:
Fix Released
Bug description:
I think it is better remove_router_interface fails when floatingip
association remains.
operation log:
---
$ quantum net-list
+--------------------------------------+---------+--------------------------------------+
| id | name | subnets |
+--------------------------------------+---------+--------------------------------------+
| 1446b63c-661d-4427-8921-8bd65fd86b49 | net-ext | f80d63dd-5bbd-4b14-bcbd-f1fc8be35b02 |
| 4d0ef4da-f7d1-45a8-8c22-e284264d9145 | net1 | 65f1f1a6-a615-48a1-9c4e-cc4e813aacb9 |
+--------------------------------------+---------+--------------------------------------+
$ quantum subnet-list
+--------------------------------------+------------+----------------+----------------------------------------------------+
| id | name | cidr | allocation_pools |
+--------------------------------------+------------+----------------+----------------------------------------------------+
| 65f1f1a6-a615-48a1-9c4e-cc4e813aacb9 | sub1 | 10.0.0.0/24 | {"start": "10.0.0.2", "end": "10.0.0.254"} |
| f80d63dd-5bbd-4b14-bcbd-f1fc8be35b02 | subnet-ext | 192.168.0.0/24 | {"start": "192.168.0.200", "end": "192.168.0.210"} |
+--------------------------------------+------------+----------------+----------------------------------------------------+
$ quantum router-create routerA
Created a new router:
+-----------------------+--------------------------------------+
| Field | Value |
+-----------------------+--------------------------------------+
| admin_state_up | True |
| external_gateway_info | |
| host_routes | |
| id | 128283af-6caa-4db8-baab-3aaf16202b14 |
| name | routerA |
| status | ACTIVE |
| tenant_id | c34402ac0852467083d496e5d9ed15cc |
+-----------------------+--------------------------------------+
$ quantum router-gateway-set routerA net-ext
Set gateway for router routerA
$ quantum router-interface-add routerA sub1
Added interface to router routerA
$ quantum port-create net1
Created a new port:
+----------------+---------------------------------------------------------------------------------+
| Field | Value |
+----------------+---------------------------------------------------------------------------------+
| admin_state_up | True |
| device_id | |
| device_owner | |
| fixed_ips | {"subnet_id": "65f1f1a6-a615-48a1-9c4e-cc4e813aacb9", "ip_address": "10.0.0.5"} |
| id | 26ab2c43-93c8-4add-adb4-2f66ba3f2c80 |
| mac_address | fa:16:3e:b3:ff:5a |
| name | |
| network_id | 4d0ef4da-f7d1-45a8-8c22-e284264d9145 |
| securitygroups | |
| status | ACTIVE |
| tenant_id | c34402ac0852467083d496e5d9ed15cc |
+----------------+---------------------------------------------------------------------------------+
$ quantum floatingip-create net-ext
Created a new floatingip:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | |
| floating_ip_address | 192.168.0.201 |
| floating_network_id | 1446b63c-661d-4427-8921-8bd65fd86b49 |
| id | 1cf835e0-c60d-4a61-9192-3089437e5485 |
| port_id | |
| router_id | |
| tenant_id | c34402ac0852467083d496e5d9ed15cc |
+---------------------+--------------------------------------+
$ quantum floatingip-associate 1cf835e0-c60d-4a61-9192-3089437e5485 26ab2c43-93c8-4add-adb4-2f66ba3f2c80
Associated floatingip 1cf835e0-c60d-4a61-9192-3089437e5485
$ quantum floatingip-show 1cf835e0-c60d-4a61-9192-3089437e5485
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| fixed_ip_address | 10.0.0.5 |
| floating_ip_address | 192.168.0.201 |
| floating_network_id | 1446b63c-661d-4427-8921-8bd65fd86b49 |
| id | 1cf835e0-c60d-4a61-9192-3089437e5485 |
| port_id | 26ab2c43-93c8-4add-adb4-2f66ba3f2c80 |
| router_id | 128283af-6caa-4db8-baab-3aaf16202b14 |
| tenant_id | c34402ac0852467083d496e5d9ed15cc |
+---------------------+--------------------------------------+
### router-interface-delete success
###
$ quantum -v router-interface-delete routerA sub1
DEBUG: quantumclient.quantum.v2_0.router.AddInterfaceRouter run(Namespace(request_format='json', router_id='routerA', subnet_id='sub1'))
DEBUG: quantumclient.client REQ: curl -i http://172.17.190.3:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-quantumclient"
DEBUG: quantumclient.client REQ BODY: {"auth": {"tenantName": "admin",
"passwordCredentials": {"username": "admin", "password": "oda"}}}
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:39:35
GMT', 'vary': 'X-Auth-Token', 'content-length': '2727', 'status':
'200', 'content-type': 'application/json'}
DEBUG: quantumclient.client RESP BODY:{"access": {"token": {"expires":
"2012-11-20T10:39:35Z", "id": "94e12378d5054868aca05c5777d8187d",
"tenant": {"enabled": true, "description": null, "name": "admin",
"id": "c34402ac0852467083d496e5d9ed15cc"}}, "serviceCatalog":
[{"endpoints": [{"adminURL":
"http://172.17.190.3:8774/v2/c34402ac0852467083d496e5d9ed15cc",
"region": "RegionOne", "publicURL":
"http://172.17.190.3:8774/v2/c34402ac0852467083d496e5d9ed15cc",
"internalURL":
"http://172.17.190.3:8774/v2/c34402ac0852467083d496e5d9ed15cc"}],
"endpoints_links": [], "type": "compute", "name": "Compute Service"},
{"endpoints": [{"adminURL": "http://172.17.190.3:9696/", "region":
"RegionOne", "publicURL": "http://172.17.190.3:9696/", "internalURL":
"http://172.17.190.3:9696/"}], "endpoints_links": [], "type":
"network", "name": "Quantum Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:3333", "region": "RegionOne", "publicURL":
"http://172.17.190.3:3333", "internalURL":
"http://172.17.190.3:3333"}], "endpoints_links": [], "type": "s3",
"name": "S3 Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:9292", "region": "RegionOne", "publicURL":
"http://172.17.190.3:9292", "internalURL":
"http://172.17.190.3:9292"}], "endpoints_links": [], "type": "image",
"name": "Image Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:8776/v1/c34402ac0852467083d496e5d9ed15cc",
"region": "RegionOne", "publicURL":
"http://172.17.190.3:8776/v1/c34402ac0852467083d496e5d9ed15cc",
"internalURL":
"http://172.17.190.3:8776/v1/c34402ac0852467083d496e5d9ed15cc"}],
"endpoints_links": [], "type": "volume", "name": "Volume Service"},
{"endpoints": [{"adminURL": "http://172.17.190.3:8773/services/Admin",
"region": "RegionOne", "publicURL":
"http://172.17.190.3:8773/services/Cloud", "internalURL":
"http://172.17.190.3:8773/services/Cloud"}], "endpoints_links": [],
"type": "ec2", "name": "EC2 Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:8000/v1", "region": "RegionOne", "publicURL":
"http://172.17.190.3:8000/v1", "internalURL":
"http://172.17.190.3:8000/v1"}], "endpoints_links": [], "type":
"orchestration", "name": "Heat Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:35357/v2.0", "region": "RegionOne", "publicURL":
"http://172.17.190.3:5000/v2.0", "internalURL":
"http://172.17.190.3:5000/v2.0"}], "endpoints_links": [], "type":
"identity", "name": "Identity Service"}], "user": {"username":
"admin", "roles_links": [], "id": "5bf27e51aeb746ef8ce9def39ca0156f",
"roles": [{"name": "admin"}, {"name": "KeystoneAdmin"}, {"name":
"KeystoneServiceAdmin"}], "name": "admin"}, "metadata": {"is_admin":
0, "roles": ["fcf5ed5aa2a54c82b99e0d3375335126",
"4668f624e66b4a2893203b0bd70493b4",
"f5f2981e7de04aed9b9c41ef53645071"]}}}
DEBUG: quantumclient.client REQ: curl -i
http://172.17.190.3:9696/v2.0/routers.json?fields=id&name=routerA -X
GET -H "User-Agent: python-quantumclient" -H "Content-Type:
application/json" -H "Accept: application/json" -H "X-Auth-Token:
94e12378d5054868aca05c5777d8187d"
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:39:35
GMT', 'status': '200', 'content-length': '61', 'content-type':
'application/json', 'content-location':
u'http://172.17.190.3:9696/v2.0/routers.json?fields=id&name=routerA'}
DEBUG: quantumclient.client RESP BODY:{"routers": [{"id": "128283af-
6caa-4db8-baab-3aaf16202b14"}]}
DEBUG: quantumclient.client REQ: curl -i
http://172.17.190.3:9696/v2.0/subnets.json?fields=id&name=sub1 -X GET
-H "User-Agent: python-quantumclient" -H "Content-Type:
application/json" -H "Accept: application/json" -H "X-Auth-Token:
94e12378d5054868aca05c5777d8187d"
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:39:35
GMT', 'status': '200', 'content-length': '61', 'content-type':
'application/json', 'content-location':
u'http://172.17.190.3:9696/v2.0/subnets.json?fields=id&name=sub1'}
DEBUG: quantumclient.client RESP BODY:{"subnets": [{"id":
"65f1f1a6-a615-48a1-9c4e-cc4e813aacb9"}]}
DEBUG: quantumclient.client REQ: curl -i
http://172.17.190.3:9696/v2.0/routers/128283af-6caa-4db8-baab-
3aaf16202b14/remove_router_interface.json PUT -H "User-Agent: python-
quantumclient" -H "Content-Type: application/json" -H "Accept:
application/json" -H "X-Auth-Token: 94e12378d5054868aca05c5777d8187d"
DEBUG: quantumclient.client REQ BODY: {"subnet_id":
"65f1f1a6-a615-48a1-9c4e-cc4e813aacb9"}
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:39:35
GMT', 'status': '200', 'content-length': '4', 'content-type':
'application/json'}
DEBUG: quantumclient.client RESP BODY:null
Removed interface from router routerA
DEBUG: quantumclient.shell clean_up RemoveInterfaceRouter
### router-delete failed with "internal server error"
###
$ quantum -v router-delete routerA
DEBUG: quantumclient.quantum.v2_0.router.DeleteRouter run(Namespace(id='routerA', request_format='json'))
DEBUG: quantumclient.client REQ: curl -i http://172.17.190.3:5000/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-quantumclient"
DEBUG: quantumclient.client REQ BODY: {"auth": {"tenantName": "admin",
"passwordCredentials": {"username": "admin", "password": "oda"}}}
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:40:18
GMT', 'vary': 'X-Auth-Token', 'content-length': '2727', 'status':
'200', 'content-type': 'application/json'}
DEBUG: quantumclient.client RESP BODY:{"access": {"token": {"expires":
"2012-11-20T10:40:18Z", "id": "c688bd71f9834ea28a8cfe5d8927a26b",
"tenant": {"enabled": true, "description": null, "name": "admin",
"id": "c34402ac0852467083d496e5d9ed15cc"}}, "serviceCatalog":
[{"endpoints": [{"adminURL":
"http://172.17.190.3:8774/v2/c34402ac0852467083d496e5d9ed15cc",
"region": "RegionOne", "publicURL":
"http://172.17.190.3:8774/v2/c34402ac0852467083d496e5d9ed15cc",
"internalURL":
"http://172.17.190.3:8774/v2/c34402ac0852467083d496e5d9ed15cc"}],
"endpoints_links": [], "type": "compute", "name": "Compute Service"},
{"endpoints": [{"adminURL": "http://172.17.190.3:9696/", "region":
"RegionOne", "publicURL": "http://172.17.190.3:9696/", "internalURL":
"http://172.17.190.3:9696/"}], "endpoints_links": [], "type":
"network", "name": "Quantum Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:3333", "region": "RegionOne", "publicURL":
"http://172.17.190.3:3333", "internalURL":
"http://172.17.190.3:3333"}], "endpoints_links": [], "type": "s3",
"name": "S3 Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:9292", "region": "RegionOne", "publicURL":
"http://172.17.190.3:9292", "internalURL":
"http://172.17.190.3:9292"}], "endpoints_links": [], "type": "image",
"name": "Image Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:8776/v1/c34402ac0852467083d496e5d9ed15cc",
"region": "RegionOne", "publicURL":
"http://172.17.190.3:8776/v1/c34402ac0852467083d496e5d9ed15cc",
"internalURL":
"http://172.17.190.3:8776/v1/c34402ac0852467083d496e5d9ed15cc"}],
"endpoints_links": [], "type": "volume", "name": "Volume Service"},
{"endpoints": [{"adminURL": "http://172.17.190.3:8773/services/Admin",
"region": "RegionOne", "publicURL":
"http://172.17.190.3:8773/services/Cloud", "internalURL":
"http://172.17.190.3:8773/services/Cloud"}], "endpoints_links": [],
"type": "ec2", "name": "EC2 Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:8000/v1", "region": "RegionOne", "publicURL":
"http://172.17.190.3:8000/v1", "internalURL":
"http://172.17.190.3:8000/v1"}], "endpoints_links": [], "type":
"orchestration", "name": "Heat Service"}, {"endpoints": [{"adminURL":
"http://172.17.190.3:35357/v2.0", "region": "RegionOne", "publicURL":
"http://172.17.190.3:5000/v2.0", "internalURL":
"http://172.17.190.3:5000/v2.0"}], "endpoints_links": [], "type":
"identity", "name": "Identity Service"}], "user": {"username":
"admin", "roles_links": [], "id": "5bf27e51aeb746ef8ce9def39ca0156f",
"roles": [{"name": "admin"}, {"name": "KeystoneAdmin"}, {"name":
"KeystoneServiceAdmin"}], "name": "admin"}, "metadata": {"is_admin":
0, "roles": ["fcf5ed5aa2a54c82b99e0d3375335126",
"4668f624e66b4a2893203b0bd70493b4",
"f5f2981e7de04aed9b9c41ef53645071"]}}}
DEBUG: quantumclient.client REQ: curl -i
http://172.17.190.3:9696/v2.0/routers.json?fields=id&name=routerA -X
GET -H "User-Agent: python-quantumclient" -H "Content-Type:
application/json" -H "Accept: application/json" -H "X-Auth-Token:
c688bd71f9834ea28a8cfe5d8927a26b"
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:40:18
GMT', 'status': '200', 'content-length': '61', 'content-type':
'application/json', 'content-location':
u'http://172.17.190.3:9696/v2.0/routers.json?fields=id&name=routerA'}
DEBUG: quantumclient.client RESP BODY:{"routers": [{"id": "128283af-
6caa-4db8-baab-3aaf16202b14"}]}
DEBUG: quantumclient.client REQ: curl -i
http://172.17.190.3:9696/v2.0/routers/128283af-6caa-4db8-baab-
3aaf16202b14.json DELETE -H "User-Agent: python-quantumclient" -H
"Content-Type: application/json" -H "Accept: application/json" -H "X
-Auth-Token: c688bd71f9834ea28a8cfe5d8927a26b"
DEBUG: quantumclient.client RESP:{'date': 'Mon, 19 Nov 2012 10:40:18
GMT', 'status': '500', 'content-length': '88', 'content-type':
'application/json'}
DEBUG: quantumclient.client RESP BODY:{"QuantumError": "Request
Failed: internal server error while processing your request."}
DEBUG: quantumclient.v2_0.client Error message: {"QuantumError": "Request Failed: internal server error while processing your request."}
ERROR: cliff.app Request Failed: internal server error while processing your request.
DEBUG: quantumclient.shell clean_up DeleteRouter
DEBUG: quantumclient.shell got an error: Request Failed: internal server error while processing your request.
### after disassociate floatingip, delete router success
###
$ quantum floatingip-disassociate 1cf835e0-c60d-4a61-9192-3089437e5485
Disassociated floatingip 1cf835e0-c60d-4a61-9192-3089437e5485
$ quantum router-delete routerA
Deleted router: routerA
---
quantum-server log
---
2012-11-19 19:40:18 ERROR [quantum.api.v2.resource] delete failed
Traceback (most recent call last):
File "/opt/stack/quantum/quantum/api/v2/resource.py", line 95, in resource
result = method(request=request, **args)
File "/opt/stack/quantum/quantum/api/v2/base.py", line 358, in delete
obj_deleter(request.context, id)
File "/opt/stack/quantum/quantum/plugins/metaplugin/meta_quantum_plugin.py", line 361, in delete_router
return plugin.delete_router(context, id)
File "/opt/stack/quantum/quantum/db/l3_db.py", line 441, in delete_router
context.session.delete(router)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 449, in __exit__
self.commit()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 361, in commit
self._prepare_impl()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 340, in _prepare_impl
self.session.flush()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1718, in flush
self._flush(objects)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1789, in _flush
flush_context.execute()
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 331, in execute
rec.execute(self)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 498, in execute
uow
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 115, in delete_obj
cached_connections, mapper, table, delete)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 671, in _emit_delete_statements
connection.execute(statement, del_objects)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1449, in execute
params)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context
context)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context
context)
File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 331, in do_execute
cursor.execute(statement, parameters)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
IntegrityError: (IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`ovs_quantum`.`floatingips`, CONSTRAINT `floatingips_ibfk_3` FOREIGN KEY (`router_id`) REFERENCES `routers` (`id`))') 'DELETE FROM routers WHERE routers.id = %s' ('128283af-6caa-4db8-baab-3aaf16202b14',)
2012-11-19 19:40:18 DEBUG [eventlet.wsgi.server] 172.17.190.3 - - [19/Nov/2012 19:40:18] "DELETE /v2.0/routers/128283af-6caa-4db8-baab-3aaf16202b14.json HTTP/1.1" 500 215 0.177709
---
To manage notifications about this bug go to:
https://bugs.launchpad.net/quantum/+bug/1080638/+subscriptions