← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1366067] Re: Neutron internal error on empty port update

 

** Changed in: neutron
       Status: In Progress => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1366067

Title:
  Neutron internal error on empty port update

Status in OpenStack Neutron (virtual network service):
  Invalid

Bug description:
  PUTting an empty update object to neutron port-update call will cause
  an internal server error:

  $ curl -H 'Content-Type: application/json' -H 'X-Auth-Token:  ...' -v -i -X PUT -d '{"port": {}}' 'http://127.0.1.1:9696/v2.0/ports/fc092916-c766-4e70-8788-b9b3edcd4c22' 
  * Hostname was NOT found in DNS cache
  *   Trying 127.0.1.1...
  * Connected to 127.0.1.1 (127.0.1.1) port 9696 (#0)
  > PUT /v2.0/ports/fc092916-c766-4e70-8788-b9b3edcd4c22 HTTP/1.1
  > User-Agent: curl/7.35.0
  > Host: 127.0.1.1:9696
  > Accept: */*
  > Content-Type: application/json
  > X-Auth-Token:  ...
  > Content-Length: 12
  > 
  * upload completely sent off: 12 out of 12 bytes
  < HTTP/1.1 500 Internal Server Error
  HTTP/1.1 500 Internal Server Error
  < Content-Type: application/json; charset=UTF-8
  Content-Type: application/json; charset=UTF-8
  < Content-Length: 88
  Content-Length: 88
  < X-Openstack-Request-Id: req-97b2b096-263d-466c-9349-b45b135db499
  X-Openstack-Request-Id: req-97b2b096-263d-466c-9349-b45b135db499
  < Date: Fri, 05 Sep 2014 14:43:28 GMT
  Date: Fri, 05 Sep 2014 14:43:28 GMT

  < 
  * Connection #0 to host 127.0.1.1 left intact
  {"NeutronError": "Request Failed: internal server error while processing your request."}

  The neutron log shows an invalid update SQL command:

  2014-09-05 14:43:28.751 2487 INFO neutron.wsgi [-] (2487) accepted
  ('127.0.0.1', 53273)

  2014-09-05 14:43:28.812 2487 ERROR neutron.openstack.common.db.sqlalchemy.session [-] DB exception wrapped.
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session Traceback (most recent call last):
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/neutron/openstack/common/db/sqlalchemy/session.py", line 597, in _wrap
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     return f(*args, **kwargs)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/neutron/openstack/common/db/sqlalchemy/session.py", line 836, in flush
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     return super(Session, self).flush(*args, **kwargs)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1818, in flush
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     self._flush(objects)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1936, in _flush
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     transaction.rollback(_capture_exception=True)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     compat.reraise(exc_type, exc_value, exc_tb)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1900, in _flush
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     flush_context.execute()
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     rec.execute(self)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     uow
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 59, in save_obj
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     mapper, table, update)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 495, in _emit_update_statements
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     execute(statement, params)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     params)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     compiled_sql, distilled_params
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     context)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     exc_info
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     reraise(type(exception), exception, tb=exc_tb)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     context)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     cursor.execute(statement, parameters)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     self.errorhandler(self, exc, value)
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session   File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session     raise errorclass, errorvalue
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session ProgrammingError: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '}, vnic_type={}, vif_type='unbound', vif_details='', driver=NULL, segment=NULL W' at line 1") 'UPDATE ml2_port_bindings SET host=%s, vnic_type=%s, vif_type=%s, vif_details=%s, driver=%s, segment=%s WHERE ml2_port_bindings.port_id = %s' ({}, {}, 'unbound', '', None, None, 'fc092916-c766-4e70-8788-b9b3edcd4c22')
  2014-09-05 14:43:28.812 2487 TRACE neutron.openstack.common.db.sqlalchemy.session 
  2014-09-05 14:43:28.815 2487 ERROR neutron.api.v2.resource [req-97b2b096-263d-466c-9349-b45b135db499 None] update failed
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource Traceback (most recent call last):
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/api/v2/resource.py", line 87, in resource
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     result = method(request=request, **args)
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/api/v2/base.py", line 505, in update
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     obj = obj_updater(request.context, id, **kwargs)
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/plugins/ml2/plugin.py", line 690, in update_port
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     self.mechanism_manager.update_port_precommit(mech_context)
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 447, in __exit__
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     self.rollback()
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     compat.reraise(exc_type, exc_value, exc_tb)
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 444, in __exit__
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     self.commit()
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 354, in commit
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     self._prepare_impl()
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 334, in _prepare_impl
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     self.session.flush()
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource   File "/usr/lib/python2.7/dist-packages/neutron/openstack/common/db/sqlalchemy/session.py", line 619, in _wrap
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource     raise exception.DBError(e)
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource DBError: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '}, vnic_type={}, vif_type='unbound', vif_details='', driver=NULL, segment=NULL W' at line 1") 'UPDATE ml2_port_bindings SET host=%s, vnic_type=%s, vif_type=%s, vif_details=%s, driver=%s, segment=%s WHERE ml2_port_bindings.port_id = %s' ({}, {}, 'unbound', '', None, None, 'fc092916-c766-4e70-8788-b9b3edcd4c22')
  2014-09-05 14:43:28.815 2487 TRACE neutron.api.v2.resource 
  2014-09-05 14:43:28.818 2487 INFO neutron.wsgi [req-97b2b096-263d-466c-9349-b45b135db499 None] 127.0.0.1 - - [05/Sep/2014 14:43:28] "PUT /v2.0/ports/fc092916-c766-4e70-8788-b9b3edcd4c22 HTTP/1.1" 500 296 0.066101

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


References