yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #27065
[Bug 1184497] Re: Midonet plugin deletes port even when deletion of Quantum port fails
[Expired for neutron because there has been no activity for 60 days.]
** Changed in: neutron
Status: Incomplete => Expired
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1184497
Title:
Midonet plugin deletes port even when deletion of Quantum port fails
Status in OpenStack Neutron (virtual network service):
Expired
Bug description:
Context: Using midonet as the plugin for quantum with a grizzly OS deployment, we have a VM instance with a floating ip associated through the horizon dashboard.
When terminating this VM instance without first disassociation of the floating ip, the delete_port() in quantum API call fails because of the floating ip association still there.
In this situation, the corresponding midonet port is nevertheless
deleted by the midonet plugin although it should not. This creates
inconsistency of state and induces errors when the dashboard tries to
retrieve the floating IPs.
2013-05-27 12:33:11 DEBUG [midonetclient.api_lib] do_request: content=
2013-05-27 12:33:11 DEBUG [quantum.db.db_base_plugin_v2] Recycle 10.0.0.6
2013-05-27 12:33:11 DEBUG [quantum.db.db_base_plugin_v2] Recycle: first match for 10.0.0.7-10.0.0.254
2013-05-27 12:33:11 DEBUG [quantum.db.db_base_plugin_v2] Recycle: last match for 10.0.0.5-10.0.0.5
2013-05-27 12:33:11 DEBUG [quantum.db.db_base_plugin_v2] Recycle: merged 10.0.0.5-10.0.0.5 and 10.0.0.7-10.0.0.254
2013-05-27 12:33:11 DEBUG [quantum.db.db_base_plugin_v2] Delete allocated IP 10.0.0.6 (80689f94-a474-486a-bcf5-ef877cb6877e/38fd3e94-7a05-4453-9bf7-2c39e0b72c2c)
2013-05-27 12:33:11 ERROR [quantum.api.v2.resource] delete failed
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/quantum/api/v2/resource.py", line 82, in resource
result = method(request=request, **args)
File "/usr/lib/python2.7/dist-packages/quantum/api/v2/base.py", line 395, in delete
obj_deleter(request.context, id, **kwargs)
File "/usr/lib/python2.7/dist-packages/quantum/plugins/midonet/plugin.py", line 516, in delete_port
return super(MidonetPluginV2, self).delete_port(context, id)
File "/usr/lib/python2.7/dist-packages/quantum/db/db_base_plugin_v2.py", line 1359, in delete_port
self._delete_port(context, id)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 449, in __exit__
self.commit()
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 361, in commit
self._prepare_impl()
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 340, in _prepare_impl
self.session.flush()
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1718, in flush
self._flush(objects)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1789, in _flush
flush_context.execute()
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 331, in execute
rec.execute(self)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 498, in execute
uow
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 115, in delete_obj
cached_connections, mapper, table, delete)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 671, in _emit_delete_statements
connection.execute(statement, del_objects)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1449, in execute
params)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context
context)
File "/usr/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 (`quantum`.`floatingips`, CONSTRAINT `floatingips_ibfk_2` FOREIGN KEY (`fixed_port_id`) REFERENCES `ports` (`id`))') 'DELETE FROM ports WHERE ports.id = %s' ('11cfa
808-bf86-463d-93ab-d6f16587c6a1',)
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1184497/+subscriptions