** Changed in: nova
Status: Fix Committed => Fix Released
** Changed in: nova
Milestone: None => liberty-3
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1463396
Title:
quota_class_update with class_id longer than 255 returns 500 error
Status in OpenStack Compute (nova):
Fix Released
Bug description:
nova quota_class_update returns 500 error if you pass class parameter
with more than 255 characters
steps to reproduce:
$ nova quota_class_update --instances 2
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
The server has either erred or is incapable of performing the
requested operation. (HTTP 500) (Request-ID: req-
3f51a5c8-ccfc-4675-b224-a5cf94f0172d)
n-api error logs:
2015-06-09 05:51:19.383 ERROR nova.api.openstack
[req-3f51a5c8-ccfc-4675-b224-a5cf94f0172d admin admin] Caught error:
(DataError) (1406, "Data too long for
column 'class_name' at row 1") 'INSERT INTO quota_classes (created_at,
updated_at, deleted_at, deleted, class_name, resource, hard_limit) VALUES (%s,
%s, %s
, %s, %s, %s, %s)' (datetime.datetime(2015, 6, 9, 12, 51, 19, 380807), None,
None, 0, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'instances', 7)
2015-06-09 05:51:19.383 TRACE nova.api.openstack Traceback (most recent call
last):
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/__init__.py", line 126, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack return
req.get_response(self.application)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1317, in send
2015-06-09 05:51:19.383 TRACE nova.api.openstack application,
catch_exc_info=False)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1281, in
call_application
2015-06-09 05:51:19.383 TRACE nova.api.openstack app_iter =
application(self.environ, start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack return resp(environ,
start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py",
line 639, in __c
all__
2015-06-09 05:51:19.383 TRACE nova.api.openstack return
self._call_app(env, start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token/__init__.py",
line 559, in _ca
ll_app
2015-06-09 05:51:19.383 TRACE nova.api.openstack return self._app(env,
_fake_start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack return resp(environ,
start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack return resp(environ,
start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 136, in
__call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack response =
self.app(environ, start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack return resp(environ,
start_response)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack resp =
self.call_func(req, *args, **self.kwargs)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2015-06-09 05:51:19.383 TRACE nova.api.openstack return self.func(req,
*args, **kwargs)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 756, in __call__
2015-06-09 05:51:19.383 TRACE nova.api.openstack content_type, body,
accept)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 821, in _process_stack
2015-06-09 05:51:19.383 TRACE nova.api.openstack action_result =
self.dispatch(meth, request, action_args)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 911, in dispatch
2015-06-09 05:51:19.383 TRACE nova.api.openstack return
method(req=request, **action_args)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/compute/contrib/quota_classes.py", line
102, in update
2015-06-09 05:51:19.383 TRACE nova.api.openstack
db.quota_class_create(context, quota_class, key, value)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/api.py", line 1088, in quota_class_create
2015-06-09 05:51:19.383 TRACE nova.api.openstack return
IMPL.quota_class_create(context, class_name, resource, limit)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/sqlalchemy/api.py", line 215, in wrapper
2015-06-09 05:51:19.383 TRACE nova.api.openstack return f(*args, **kwargs)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/sqlalchemy/api.py", line 3186, in quota_class_create
2015-06-09 05:51:19.383 TRACE nova.api.openstack quota_class_ref.save()
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/sqlalchemy/models.py", line 82, in save
2015-06-09 05:51:19.383 TRACE nova.api.openstack super(NovaBase,
self).save(session=session)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/models.py", line 48,
in save
2015-06-09 05:51:19.383 TRACE nova.api.openstack session.flush()
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1985,
in flush
2015-06-09 05:51:19.383 TRACE nova.api.openstack self._flush(objects)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2103,
in _flush
2015-06-09 05:51:19.383 TRACE nova.api.openstack
transaction.rollback(_capture_exception=True)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line
60, in __exit__
2015-06-09 05:51:19.383 TRACE nova.api.openstack compat.reraise(exc_type,
exc_value, exc_tb)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2067,
in _flush
2015-06-09 05:51:19.383 TRACE nova.api.openstack flush_context.execute()
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line
372, in execute
2015-06-09 05:51:19.383 TRACE nova.api.openstack rec.execute(self)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line
526, in execute
2015-06-09 05:51:19.383 TRACE nova.api.openstack uow
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line
65, in save_obj
2015-06-09 05:51:19.383 TRACE nova.api.openstack mapper, table, insert)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line
602, in _emit_insert_st
atements
2015-06-09 05:51:19.383 TRACE nova.api.openstack execute(statement,
params)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 841,
in execute
2015-06-09 05:51:19.383 TRACE nova.api.openstack return meth(self,
multiparams, params)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 322,
in _execute_on_connec
tion
2015-06-09 05:51:19.383 TRACE nova.api.openstack return
connection._execute_clauseelement(self, multiparams, params)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 938,
in _execute_clauseelem
ent
2015-06-09 05:51:19.383 TRACE nova.api.openstack compiled_sql,
distilled_params
2015-06-09 05:51:19.383 TRACE nova.api.openstack context)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/oslo_db/sqlalchemy/compat/handle_error.py",
line 261, in _handle_dbapi_exception
2015-06-09 05:51:19.383 TRACE nova.api.openstack e, statement,
parameters, cursor, context)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1267,
in _handle_dbapi_exception
2015-06-09 05:51:19.383 TRACE nova.api.openstack
util.raise_from_cause(newraise, exc_info)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 199,
in raise_from_cause
2015-06-09 05:51:19.383 TRACE nova.api.openstack reraise(type(exception),
exception, tb=exc_tb)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1063,
in _execute_context
2015-06-09 05:51:19.383 TRACE nova.api.openstack context)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line
442, in do_execute
2015-06-09 05:51:19.383 TRACE nova.api.openstack
cursor.execute(statement, parameters)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
2015-06-09 05:51:19.383 TRACE nova.api.openstack self.errorhandler(self,
exc, value)
2015-06-09 05:51:19.383 TRACE nova.api.openstack File
"/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in
defaulterrorhandler
2015-06-09 05:51:19.383 TRACE nova.api.openstack raise errorclass,
errorvalue
2015-06-09 05:51:19.383 TRACE nova.api.openstack DBError: (DataError) (1406,
"Data too long for column 'class_name' at row 1") 'INSERT INTO quota_classes
(created_at, updated_at, deleted_at, deleted, class_name, resource, hard_limit)
VALUES (%s, %s, %s, %s, %s, %s, %s)' (datetime.datetime(2015, 6, 9, 12, 51, 19,
380807), None, None, 0,
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
'instances', 7)
2015-06-09 05:51:19.383 TRACE nova.api.openstack
2015-06-09 05:51:19.389 INFO nova.api.openstack
[req-3f51a5c8-ccfc-4675-b224-a5cf94f0172d admin admin]
http://10.69.4.136:8774/v2/bd00959429ab477f812822ac32638bd7/os-quota-class-sets/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
returned with HTTP 500
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1463396/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp