** 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

-- 
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