NSX: unabled to delete provider network

Bug #1367032 reported by Aaron Rosen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Aaron Rosen

Bug Description

2014-09-08 14:56:29.981 TRACE neutron.api.v2.resource
2014-09-08 14:59:52.729 ERROR oslo.db.sqlalchemy.exc_filters [req-95d62444-0b6f-4710-93f1-c5718b257762 admin 236c7a84a5b24a5b93053b9649e09b47] DBAPIError exception wrapped from (IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`neutron`.`tz_network_bindings`, CONSTRAINT `tz_network_bindings_ibfk_1` FOREIGN KEY (`network_id`) REFERENCES `networks` (`id`))') 'DELETE FROM networks WHERE networks.id = %s' ('7e6f7301-faf8-4e7b-b635-1f91d22aa955',)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters Traceback (most recent call last):
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py", line 59, in _handle_dbapi_exception
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters e, statement, parameters, cursor, context)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters exc_info
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters reraise(type(exception), exception, tb=exc_tb)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters context)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters cursor.execute(statement, parameters)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters self.errorhandler(self, exc, value)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters raise errorclass, errorvalue
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters IntegrityError: (IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`neutron`.`tz_network_bindings`, CONSTRAINT `tz_network_bindings_ibfk_1` FOREIGN KEY (`network_id`) REFERENCES `networks` (`id`))') 'DELETE FROM networks WHERE networks.id = %s' ('7e6f7301-faf8-4e7b-b635-1f91d22aa955',)
2014-09-08 14:59:52.729 TRACE oslo.db.sqlalchemy.exc_filters
2014-09-08 14:59:52.804 ERROR neutron.api.v2.resource [req-95d62444-0b6f-4710-93f1-c5718b257762 admin 236c7a84a5b24a5b93053b9649e09b47] delete failed
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource Traceback (most recent call last):
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 87, in resource
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource result = method(request=request, **args)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 476, in delete
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource obj_deleter(request.context, id, **kwargs)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/plugins/vmware/plugins/base.py", line 1005, in delete_network
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource super(NsxPluginV2, self).delete_network(context, id)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/db/db_base_plugin_v2.py", line 912, in delete_network
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource context.session.delete(network)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 447, in __exit__
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource self.rollback()
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource compat.reraise(exc_type, exc_value, exc_tb)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 444, in __exit__
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource self.commit()
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 354, in commit
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource self._prepare_impl()
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 334, in _prepare_impl
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource self.session.flush()
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1818, in flush
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource self._flush(objects)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1936, in _flush
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource transaction.rollback(_capture_exception=True)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource compat.reraise(exc_type, exc_value, exc_tb)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1900, in _flush
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource flush_context.execute()
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource rec.execute(self)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 553, in execute
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource uow
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 116, in delete_obj
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource cached_connections, mapper, table, delete)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 681, in _emit_delete_statements
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource connection.execute(statement, del_objects)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource params)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource compiled_sql, distilled_params
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource context)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py", line 125, in _handle_dbapi_exception
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource six.reraise(type(newraise), newraise, sys.exc_info()[2])
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py", line 102, in _handle_dbapi_exception
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource per_fn = fn(ctx)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/exc_filters.py", line 323, in handler
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource context.is_disconnect)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/exc_filters.py", line 278, in _raise_for_remaining_DBAPIError
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource raise exception.DBError(error)
2014-09-08 14:59:52.804 TRACE neutron.api.v2.resource DBError: (IntegrityError) (1451, 'Cannot delete or update a parent row: a foreign key constraint fails (`neutron`.`tz_network_bindings`, CONSTRAINT `tz_network_bindings_ibfk_1` FOREIGN KEY (`network_id`) REFERENCES `networks` (`id`))') 'DELETE FROM networks WHERE networks.id = %s' ('7e6f7301-faf8-4e7b-b635-1f91d22aa955',)

Aaron Rosen (arosen)
Changed in neutron:
assignee: nobody → Aaron Rosen (arosen)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/119953

Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/119953
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=0dc5d9f77e0d14f57ead1f53b9e2ad0a68faf786
Submitter: Jenkins
Branch: master

commit 0dc5d9f77e0d14f57ead1f53b9e2ad0a68faf786
Author: Aaron Rosen <email address hidden>
Date: Mon Sep 8 16:08:30 2014 -0700

    NSX: Fix foreign key constraint delete provider network

    The cascade delete on the tz_network_bindings table is not
    taking effect with the NSX plugin. In order to fix this, this
    will require a db migration. This patch allows us to provide a
    fix for this by deleting the tz_network_bindings within a transaction
    to avoid the foreign key constraint. This patch fixes it this way so
    that it can be backported to icehouse. Later a patch will be pushed with a
    migration which corrects the db schema.

    Closes-bug: #1367032

    Change-Id: I19d389acc710224baff79ad114fab756b2e21cfc

Changed in neutron:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in neutron:
milestone: none → kilo-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: kilo-1 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.