[stable/liberty] neutron port-delete causes 500 error

Bug #1603384 reported by Prashant Shetty on 2016-07-15
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Undecided
Satya Pavan Nelakanti

Bug Description

Setup:
Single controller
1 KVM compute

Steps:

1. create subnet vn 20.0.0.0/24
2. Launch 4 instances on the above network
3. create LB1 for subnet vn.
4. create listner and pool . Add instances as members to the pool
5. Try to delete the LBaaS port using neutron command

As port was LBaaS VIP port, neutron is showing below trace. It should give some human readable error message to end user.

stack@runner:~/nsbu_cqe_openstack$
stack@runner:~/nsbu_cqe_openstack$ neutron port-delete f2882626-56a8-481f-b5bf-abc07041d789
Request Failed: internal server error while processing your request.
stack@runner:~/nsbu_cqe_openstack$

Trace:

2016-06-27 13:22:08.571 DEBUG vmware_nsx.nsxlib.v3.cluster [req-71b9377c-c7ea-4fe8-9dbf-9a09915fdcdb admin 2202a897d9ab46e185f05aacd3e7aa6c] API cluster proxy POST /api/v1/ns-groups/5090b84f-3aa8-415d-a067-ded3d36730b4?action=REMOVE_MEMBERS to https://172.17.4.145/api/v1/ns-groups/5090b84f-3aa8-415d-a067-ded3d36730b4?action=REMOVE_MEMBERS from (pid=8730) _proxy /opt/stack/vmware-nsx/vmware_nsx/nsxlib/v3/cluster.py:429
2016-06-27 13:22:08.631 ERROR neutron.api.v2.resource [req-71b9377c-c7ea-4fe8-9dbf-9a09915fdcdb admin 2202a897d9ab46e185f05aacd3e7aa6c] delete failed
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource Traceback (most recent call last):
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource result = method(request=request, **args)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 532, in delete
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource return self._delete(request, id, **kwargs)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource ectxt.value = e.inner_exc
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 204, in __exit__
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource return f(*args, **kwargs)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 554, in _delete
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource obj_deleter(request.context, id, **kwargs)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/opt/stack/vmware-nsx/vmware_nsx/plugins/nsx_v3/plugin.py", line 875, in delete_port
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource ret_val = super(NsxV3Plugin, self).delete_port(context, port_id)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/opt/stack/neutron/neutron/db/db_base_plugin_v2.py", line 1220, in delete_port
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self.ipam.delete_port(context, id)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 502, in __exit__
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self.rollback()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource compat.reraise(exc_type, exc_value, exc_tb)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 499, in __exit__
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self.commit()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 392, in commit
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self._prepare_impl()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self.session.flush()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2027, in flush
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self._flush(objects)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2145, in _flush
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource transaction.rollback(_capture_exception=True)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource compat.reraise(exc_type, exc_value, exc_tb)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2109, in _flush
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource flush_context.execute()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 373, in execute
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource rec.execute(self)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 561, in execute
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource uow
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 249, in delete_obj
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource cached_connections, mapper, table, delete)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 877, in _emit_delete_statements
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource c = connection.execute(statement, del_objects)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 914, in execute
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource return meth(self, multiparams, params)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource return connection._execute_clauseelement(self, multiparams, params)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource compiled_sql, distilled_params
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource context)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource util.raise_from_cause(newraise, exc_info)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 200, in raise_from_cause
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource reraise(type(exception), exception, tb=exc_tb)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource context)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource cursor.execute(statement, parameters)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 146, in execute
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource result = self._query(query)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 296, in _query
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource conn.query(q)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 781, in query
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource self._affected_rows = self._read_query_result(unbuffered=unbuffered)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 942, in _read_query_result
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource result.read()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1138, in read
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource first_packet = self.connection._read_packet()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 906, in _read_packet
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource packet.check_error()
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 367, in check_error
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource err.raise_mysql_exception(self._data)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 120, in raise_mysql_exception
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource _check_mysql_exception(errinfo)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 112, in _check_mysql_exception
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource raise errorclass(errno, errorvalue)
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource DBReferenceError: (pymysql.err.IntegrityError) (1451, u'Cannot delete or update a parent row: a foreign key constraint fails (`neutron`.`lbaas_loadbalancers`, CONSTRAINT `fk_lbaas_loadbalancers_ports_id` FOREIGN KEY (`vip_port_id`) REFERENCES `ports` (`id`))') [SQL: u'DELETE FROM ports WHERE ports.id = %s'] [parameters: (u'f2882626-56a8-481f-b5bf-abc07041d789',)]
2016-06-27 13:22:08.631 TRACE neutron.api.v2.resource
2016-06-27 13:22:08.827 INFO neutron.wsgi [req-71b9377c-c7ea-4fe8-9dbf-9a09915fdcdb admin 2202a897d9ab46e185f05aacd3e7aa6c] 172.17.5.148 - - [27/Jun/2016 13:22:08] "DELETE /v2.0/ports/f2882626-56a8-481f-b5bf-abc07041d789.json HTTP/1.1" 500 383 0.356938

Changed in neutron:
assignee: nobody → Satya Pavan Nelakanti (nelakanti11)
status: New → In Progress
Michael Johnson (johnsom) wrote :

Updated the title to reflect the bug described.
Removed the lbaas tag as this appears to be a bug against neutron port-delete.

summary: - [stable/liberty] LBaaS v2 haproxy:
+ [stable/liberty] neutron port-delete causes 500 error
tags: removed: lbaas
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers