← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1480039] Re: User cannot delete the port which is used by lb vip, but user can update it device_owner field

 

[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/1480039

Title:
  User cannot delete the port which is used by lb vip,but user can
  update it device_owner field

Status in neutron:
  Expired

Bug description:
  When exist a port which used by loadbalancer vip, and now as my env didn't setup the lb-agent,so I just want to delete the port.
  The server showed "cannot be deleted directly via the port API: has device owner neutron:LOADBALANCER".But user can update this port's device_owner to anything.And rerun port-delete,server showed "Request Failed: internal server error while processing your request".

  And the err log from (neutron)server.log is :
   from (pid=4719) _http_log_response /usr/local/lib/python2.7/dist-packages/keystoneclient/session.py:224
  2015-07-31 11:20:50.238 DEBUG neutron.plugins.ml2.managers [req-9f8e0ef0-14b8-418f-9213-c5fd1df46cdb admin e921522145ec4c4082844237991d5d01] Extended port dict for driver 'port_security' from (pid=4719) extend_port_dict /opt/stack/neutron/neutron/plugins/ml2/managers.py:821
  2015-07-31 11:20:50.239 INFO neutron.wsgi [req-9f8e0ef0-14b8-418f-9213-c5fd1df46cdb admin e921522145ec4c4082844237991d5d01] 10.250.10.88 - - [31/Jul/2015 11:20:50] "GET /v2.0/ports.json?fields=id&id=d7c270ef-2a37-413f-99a3-8299aa96dc01 HTTP/1.1" 200 272 0.094210
  2015-07-31 11:20:50.262 DEBUG neutron.plugins.ml2.managers [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Extended port dict for driver 'port_security' from (pid=4719) extend_port_dict /opt/stack/neutron/neutron/plugins/ml2/managers.py:821
  2015-07-31 11:20:50.263 DEBUG neutron.plugins.ml2.plugin [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Deleting port d7c270ef-2a37-413f-99a3-8299aa96dc01 from (pid=4719) _pre_delete_port /opt/stack/neutron/neutron/plugins/ml2/plugin.py:1253
  2015-07-31 11:20:50.263 DEBUG neutron.callbacks.manager [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Notify callbacks for port, before_delete from (pid=4719) _notify_loop /opt/stack/neutron/neutron/callbacks/manager.py:135
  2015-07-31 11:20:50.264 DEBUG neutron.callbacks.manager [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Calling callback neutron_lbaas.db.loadbalancer.loadbalancer_db._prevent_lbaas_port_delete_callback from (pid=4719) _notify_loop /opt/stack/neutron/neutron/callbacks/manager.py:141
  2015-07-31 11:20:50.280 DEBUG neutron.callbacks.manager [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Calling callback neutron.db.l3_db._prevent_l3_port_delete_callback from (pid=4719) _notify_loop /opt/stack/neutron/neutron/callbacks/manager.py:141
  2015-07-31 11:20:50.307 DEBUG neutron.plugins.ml2.managers [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Extended port dict for driver 'port_security' from (pid=4719) extend_port_dict /opt/stack/neutron/neutron/plugins/ml2/managers.py:821
  2015-07-31 11:20:50.324 DEBUG neutron.plugins.ml2.managers [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Extended network dict for driver 'port_security' from (pid=4719) extend_network_dict /opt/stack/neutron/neutron/plugins/ml2/managers.py:807
  2015-07-31 11:20:50.328 DEBUG neutron.plugins.ml2.db [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] For port d7c270ef-2a37-413f-99a3-8299aa96dc01, host allinone, got binding levels [] from (pid=4719) get_binding_levels /opt/stack/neutron/neutron/plugins/ml2/db.py:177
  2015-07-31 11:20:50.333 DEBUG neutron.plugins.ml2.plugin [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] Calling delete_port for d7c270ef-2a37-413f-99a3-8299aa96dc01 owned by bzhao from (pid=4719) delete_port /opt/stack/neutron/neutron/plugins/ml2/plugin.py:1317
  2015-07-31 11:20:50.337 ERROR neutron.api.v2.resource [req-fdb7d324-b110-4123-b48f-d390071a21fd admin e921522145ec4c4082844237991d5d01] delete failed
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource Traceback (most recent call last):
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/resource.py", line 83, in resource
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     result = method(request=request, **args)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 119, in __exit__
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/api/v2/base.py", line 499, in delete
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     obj_deleter(request.context, id, **kwargs)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 146, in wrapper
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     ectxt.value = e.inner_exc
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 119, in __exit__
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     six.reraise(self.type_, self.value, self.tb)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 136, in wrapper
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     return f(*args, **kwargs)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 1318, in delete_port
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     super(Ml2Plugin, self).delete_port(context, id)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/db_base_plugin_v2.py", line 909, in delete_port
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     self.ipam.delete_port(context, id)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/opt/stack/neutron/neutron/db/ipam_backend_mixin.py", line 412, in delete_port
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     query.delete()
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2827, in delete
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     delete_op.exec_()
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 1086, in exec_
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     self._do_exec()
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 1264, in _do_exec
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     mapper=self.mapper)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1023, in execute
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     bind, close_with_result=True).execute(clause, params or {})
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 914, in execute
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     return meth(self, multiparams, params)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     return connection._execute_clauseelement(self, multiparams, params)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     compiled_sql, distilled_params
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     context)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     util.raise_from_cause(newraise, exc_info)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     reraise(type(exception), exception, tb=exc_tb)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     context)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     cursor.execute(statement, parameters)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 134, in execute
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     result = self._query(query)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 282, in _query
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     conn.query(q)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 768, in query
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 929, in _read_query_result
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     result.read()
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1125, in read
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     first_packet = self.connection._read_packet()
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 893, in _read_packet
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     packet.check_error()
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 369, in check_error
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     err.raise_mysql_exception(self._data)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 120, in raise_mysql_exception
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     _check_mysql_exception(errinfo)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource   File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 112, in _check_mysql_exception
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource     raise errorclass(errno, errorvalue)
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource DBReferenceError: (pymysql.err.IntegrityError) (1451, u'Cannot delete or update a parent row: a foreign key constraint fails (`neutron`.`vips`, CONSTRAINT `vips_ibfk_1` FOREIGN KEY (`port_id`) REFERENCES `ports` (`id`))') [SQL: u'DELETE FROM ports WHERE ports.id = %s'] [parameters: (u'd7c270ef-2a37-413f-99a3-8299aa96dc01',)]
  2015-07-31 11:20:50.337 TRACE neutron.api.v2.resource

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1480039/+subscriptions


References