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

Reply via email to