Reviewed: https://review.openstack.org/351488 Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=d59fa2b65e23b243806d82929d59c2bf79a91570 Submitter: Jenkins Branch: master
commit d59fa2b65e23b243806d82929d59c2bf79a91570 Author: hobo.kengo <hobo.ke...@jp.fujitsu.com> Date: Fri Aug 5 05:11:28 2016 +0000 Disallow specifying too long name for meter-label Change-Id: Id916192f0ae38434de7d86790e056e48764b0916 Closes-Bug: #1609725 ** Changed in: neutron Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1609725 Title: Creating meter-label with name that has more than 255 characters returns 500 error. Status in neutron: Fix Released Bug description: Neutron tries to store name that has more than 255 characters. Length of name should be validated. Request ================= ubuntu@neutron-ml2:~$ curl -g -i -X POST http://172.16.1.29:9696/v2.0/metering/metering-labels -H "X-Auth-Token: $TOKEN" -d '{"metering_label":{"name":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab"}}' HTTP/1.1 500 Internal Server Error Content-Type: application/json Content-Length: 150 X-Openstack-Request-Id: req-0d73d5b4-fabf-468f-874a-1458e39697a5 Date: Thu, 04 Aug 2016 10:07:18 GMT {"NeutronError": {"message": "Request Failed: internal server error while processing your request.", "type": "HTTPInternalServerError", "detail": ""}} ==================== trace in neutron-server ===================== 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters [req-0d73d5b4-fabf-468f-874a-1458e39697a5 b3ec23ec52144d7e96696abef028a5b0 7dbb594bc59546f6b26ad73da2 53c90a - - -] DBAPIError exception wrapped from (pymysql.err.DataError) (1406, u"Data too long for column 'name' at row 1") [SQL: u'INSERT INTO meteringlabels (project_ id, id, name, description, shared) VALUES (%(project_id)s, %(id)s, %(name)s, %(description)s, %(shared)s)'] [parameters: {'shared': 0, 'description': '', 'project_id': u'7dbb594bc59546f6b26ad73da253c90a', 'id': '07bf0f95-9950-418d-b667-b38084f4bad7', 'name': u'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaab'}] 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters Traceback (most recent call last): 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_con text 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters context) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters cursor.execute(statement, parameters) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 161, in execute 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters result = self._query(query) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 317, in _query 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters conn.query(q) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 837, in query 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters self._affected_rows = self._read_query_result(unbuffered=unbuffered) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1021, in _read_query_res ult 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters result.read() 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1304, in read 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters first_packet = self.connection._read_packet() 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 983, in _read_packet 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters packet.check_error() 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 395, in check_error 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters err.raise_mysql_exception(self._data) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 120, in raise_mysql_exception 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters _check_mysql_exception(errinfo) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 112, in _check_mysql_exception 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters raise errorclass(errno, errorvalue) 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters DataError: (1406, u"Data too long for column 'name' at row 1") 2016-08-04 10:07:18.591 21756 ERROR oslo_db.sqlalchemy.exc_filters 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource [req-0d73d5b4-fabf-468f-874a-1458e39697a5 b3ec23ec52144d7e96696abef028a5b0 7dbb594bc59546f6b26ad73da253c90a - - -] create failed: No details. 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource Traceback (most recent call last): 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource result = method(request=request, **args) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 397, in create 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource return self._create(request, body, **kwargs) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 148, in wrapper 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self.force_reraise() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 138, in wrapper 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource return f(*args, **kwargs) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 510, in _create 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource obj = do_create(body) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 492, in do_create 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource request.context, reservation.reservation_id) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self.force_reraise() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/api/v2/base.py", line 485, in do_create 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource return obj_creator(request.context, **kwargs) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/services/metering/metering_plugin.py", line 45, in create_metering_label 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource context, metering_label) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/opt/stack/neutron/neutron/db/metering/metering_db.py", line 79, in create_metering_label 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource context.session.add(metering_db) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 490, in __exit__ 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self.rollback() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__ 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource compat.reraise(exc_type, exc_value, exc_tb) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 487, in __exit__ 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self.commit() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 392, in commit 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self._prepare_impl() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 372, in _prepare_impl 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self.session.flush() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2019, in flush 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self._flush(objects) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2137, in _flush 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource transaction.rollback(_capture_exception=True) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__ 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource compat.reraise(exc_type, exc_value, exc_tb) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2101, in _flush 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource flush_context.execute() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 373, in execute 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource rec.execute(self) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 532, in execute 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource uow 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 174, in save_obj 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource mapper, table, insert) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 767, in _emit_insert_statements 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource execute(statement, multiparams) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 914, in execute 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource return meth(self, multiparams, params) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource return connection._execute_clauseelement(self, multiparams, params) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource compiled_sql, distilled_params 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource context) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1337, in _handle_dbapi_exception 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource util.raise_from_cause(newraise, exc_info) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 202, in raise_from_cause 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource reraise(type(exception), exception, tb=exc_tb, cause=cause) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1139, in _execute_context 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource context) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 450, in do_execute 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource cursor.execute(statement, parameters) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 161, in execute 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource result = self._query(query) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/cursors.py", line 317, in _query 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource conn.query(q) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 837, in query 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource self._affected_rows = self._read_query_result(unbuffered=unbuffered) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1021, in _read_query_result 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource result.read() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 1304, in read 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource first_packet = self.connection._read_packet() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 983, in _read_packet 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource packet.check_error() 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/connections.py", line 395, in check_error 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource err.raise_mysql_exception(self._data) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 120, in raise_mysql_exception 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource _check_mysql_exception(errinfo) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource File "/usr/local/lib/python2.7/dist-packages/pymysql/err.py", line 112, in _check_mysql_exception 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource raise errorclass(errno, errorvalue) 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource DBError: (pymysql.err.DataError) (1406, u"Data too long for column 'name' at row 1") [SQL: u'INSERT INTO meteringlabels (project_id, id, name, description, shared) VALUES (%(project_id)s, %(id)s, %(name)s, %(description)s, %(shared)s)'] [parameters: {'shared': 0, 'description': '', 'project_id': u'7dbb594bc59546f6b26ad73da253c90a', 'id': '07bf0f95-9950-418d-b667-b38084f4bad7', 'name': u'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab'}] 2016-08-04 10:07:18.598 21756 ERROR neutron.api.v2.resource 2016-08-04 10:07:18.609 21756 INFO neutron.wsgi [req-0d73d5b4-fabf-468f-874a-1458e39697a5 b3ec23ec52144d7e96696abef028a5b0 7dbb594bc59546f6b26ad73da253c90a - - -] 172.16.1.29 - - [04/Aug/2016 10:07:18] "POST /v2.0/metering/metering-labels HTTP/1.1" 500 344 1.387971 ================================= To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1609725/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp