yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #35862
[Bug 1463387] Re: quota-class-update api return 500 error if value is above mysql INT type
** Changed in: nova
Status: Fix Committed => Fix Released
** Changed in: nova
Milestone: None => liberty-2
--
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/1463387
Title:
quota-class-update api return 500 error if value is above mysql INT
type
Status in OpenStack Compute (nova):
Fix Released
Bug description:
nova quota-class-update api return 500 error if update value is
greater than mysql INT type.
steps to reproduce:
$ nova quota-class-update --instances 2147483648 default
ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500)
or
curl -g -i --cacert "/opt/stack/data/CA/int-ca/ca-chain.pem" -X PUT http://10.69.4.136:8774/v3/bd00959429ab477f812822ac32638bd7/os-quota-class-sets/default -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: 4846614c5c3341f5a1828a987d692d5f" -d '{"quota_class_set": {"instances": 2147483648}}'
n-api error logs:
2015-06-09 04:32:40.215 ERROR oslo_db.sqlalchemy.exc_filters [req-dbe4c88d-0baa-4a8a-bf1a-3272412723a5 admin admin] DBAPIError exception wrapped from (DataE
rror) (1264, "Out of range value for column 'hard_limit' at row 8") 'UPDATE quota_classes SET updated_at=%s, hard_limit=%s WHERE quota_classes.deleted = %s
AND quota_classes.class_name = %s AND quota_classes.resource = %s' (datetime.datetime(2015, 6, 9, 11, 32, 40, 214756), 2147483648, 0, 'default', 'instances'
)
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters Traceback (most recent call last):
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1063, in _execu
te_context
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters context)
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 442, in do_e
xecute
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters cursor.execute(statement, parameters)
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters self.errorhandler(self, exc, value)
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandl
er
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters raise errorclass, errorvalue
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters DataError: (1264, "Out of range value for column 'hard_limit' at row 8")
2015-06-09 04:32:40.215 TRACE oslo_db.sqlalchemy.exc_filters
2015-06-09 04:32:40.217 ERROR nova.api.openstack [req-dbe4c88d-0baa-4a8a-bf1a-3272412723a5 admin admin] Caught error: (DataError) (1264, "Out of range value
for column 'hard_limit' at row 8") 'UPDATE quota_classes SET updated_at=%s, hard_limit=%s WHERE quota_classes.deleted = %s AND quota_classes.class_name = %
s AND quota_classes.resource = %s' (datetime.datetime(2015, 6, 9, 11, 32, 40, 214756), 2147483648, 0, 'default', 'instances')
2015-06-09 04:32:40.217 TRACE nova.api.openstack Traceback (most recent call last):
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/__init__.py", line 126, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack return req.get_response(self.application)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1317, in send
2015-06-09 04:32:40.217 TRACE nova.api.openstack application, catch_exc_info=False)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1281, in call_application
2015-06-09 04:32:40.217 TRACE nova.api.openstack app_iter = application(self.environ, start_response)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack return resp(environ, start_response)
2015-06-09 04:32:40.217 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 04:32:40.217 TRACE nova.api.openstack return self._call_app(env, start_response)
2015-06-09 04:32:40.217 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 04:32:40.217 TRACE nova.api.openstack return self._app(env, _fake_start_response)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack return resp(environ, start_response)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/routes/middleware.py", line 136, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack response = self.app(environ, start_response)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack return resp(environ, start_response)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2015-06-09 04:32:40.217 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 756, in __call__
2015-06-09 04:32:40.217 TRACE nova.api.openstack content_type, body, accept)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 821, in _process_stack
2015-06-09 04:32:40.217 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 911, in dispatch
2015-06-09 04:32:40.217 TRACE nova.api.openstack return method(req=request, **action_args)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/compute/contrib/quota_classes.py", line 76, in update
2015-06-09 04:32:40.217 TRACE nova.api.openstack utils.check_string_length(id, 'quota_class',
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/db/api.py", line 1108, in quota_class_update
2015-06-09 04:32:40.217 TRACE nova.api.openstack return IMPL.quota_class_update(context, class_name, resource, limit)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 215, in wrapper
2015-06-09 04:32:40.217 TRACE nova.api.openstack return f(*args, **kwargs)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/nova/nova/db/sqlalchemy/api.py", line 3195, in quota_class_update
2015-06-09 04:32:40.217 TRACE nova.api.openstack update({'hard_limit': limit})
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2851, in update
2015-06-09 04:32:40.217 TRACE nova.api.openstack update_op.exec_()
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 897, in exec_
2015-06-09 04:32:40.217 TRACE nova.api.openstack self._do_exec()
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 995, in _do_exec
2015-06-09 04:32:40.217 TRACE nova.api.openstack update_stmt, params=self.query._params)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1021, in execute
2015-06-09 04:32:40.217 TRACE nova.api.openstack bind, close_with_result=True).execute(clause, params or {})
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 841, in execute
2015-06-09 04:32:40.217 TRACE nova.api.openstack return meth(self, multiparams, params)
2015-06-09 04:32:40.217 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 04:32:40.217 TRACE nova.api.openstack return connection._execute_clauseelement(self, multiparams, params)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 938, in _execute_clauseelement
2015-06-09 04:32:40.217 TRACE nova.api.openstack compiled_sql, distilled_params
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1070, in _execute_context
2015-06-09 04:32:40.217 TRACE nova.api.openstack context)
2015-06-09 04:32:40.217 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 04:32:40.217 TRACE nova.api.openstack e, statement, parameters, cursor, context)
2015-06-09 04:32:40.217 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 04:32:40.217 TRACE nova.api.openstack util.raise_from_cause(newraise, exc_info)
2015-06-09 04:32:40.217 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 04:32:40.217 TRACE nova.api.openstack reraise(type(exception), exception, tb=exc_tb)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1063, in _execute_context
2015-06-09 04:32:40.217 TRACE nova.api.openstack context)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 442, in do_execute
2015-06-09 04:32:40.217 TRACE nova.api.openstack cursor.execute(statement, parameters)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
2015-06-09 04:32:40.217 TRACE nova.api.openstack self.errorhandler(self, exc, value)
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
2015-06-09 04:32:40.217 TRACE nova.api.openstack raise errorclass, errorvalue
2015-06-09 04:32:40.217 TRACE nova.api.openstack DBError: (DataError) (1264, "Out of range value for column 'hard_limit' at row 8") 'UPDATE quota_classes SET updated_at=%s, hard_limit=%s WHERE quota_classes.deleted = %s AND quota_classes.class_name = %s AND quota_classes.resource = %s' (datetime.datetime(2015, 6, 9, 11, 32, 40, 214756), 2147483648, 0, 'default', 'instances')
2015-06-09 04:32:40.217 TRACE nova.api.openstack
2015-06-09 04:32:40.223 INFO nova.api.openstack [req-dbe4c88d-0baa-4a8a-bf1a-3272412723a5 admin admin] http://10.69.4.136:8774/v2/bd00959429ab477f812822ac32638bd7/os-quota-class-sets/default returned with HTTP 500
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1463387/+subscriptions
References