quota-class-update api return 500 error if value is above mysql INT type
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Pranali Deore |
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/
n-api error logs:
2015-06-09 04:32:40.215 ERROR oslo_db.
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.
AND quota_classes.
)
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
te_context
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
xecute
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
er
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.215 TRACE oslo_db.
2015-06-09 04:32:40.217 ERROR nova.api.openstack [req-dbe4c88d-
for column 'hard_limit' at row 8") 'UPDATE quota_classes SET updated_at=%s, hard_limit=%s WHERE quota_classes.
s AND quota_classes.
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/
2015-06-09 04:32:40.217 TRACE nova.api.openstack return req.get_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
2015-06-09 04:32:40.217 TRACE nova.api.openstack application, catch_exc_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
2015-06-09 04:32:40.217 TRACE nova.api.openstack app_iter = application(
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
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/
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/
ll_app
2015-06-09 04:32:40.217 TRACE nova.api.openstack return self._app(env, _fake_start_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
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/
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/
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/
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/
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/
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/
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/
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/
2015-06-09 04:32:40.217 TRACE nova.api.openstack utils.check_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/
2015-06-09 04:32:40.217 TRACE nova.api.openstack return IMPL.quota_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/opt/stack/
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/
2015-06-09 04:32:40.217 TRACE nova.api.openstack update(
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
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/
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/
2015-06-09 04:32:40.217 TRACE nova.api.openstack update_stmt, params=
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
2015-06-09 04:32:40.217 TRACE nova.api.openstack bind, close_with_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
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/
tion
2015-06-09 04:32:40.217 TRACE nova.api.openstack return connection.
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
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/
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/
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/
2015-06-09 04:32:40.217 TRACE nova.api.openstack util.raise_
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
2015-06-09 04:32:40.217 TRACE nova.api.openstack reraise(
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/local/
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/
2015-06-09 04:32:40.217 TRACE nova.api.openstack cursor.
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/lib/
2015-06-09 04:32:40.217 TRACE nova.api.openstack self.errorhandl
2015-06-09 04:32:40.217 TRACE nova.api.openstack File "/usr/lib/
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.
2015-06-09 04:32:40.217 TRACE nova.api.openstack
2015-06-09 04:32:40.223 INFO nova.api.openstack [req-dbe4c88d-
Changed in nova: | |
assignee: | nobody → Pranali Deore (pranali-deore) |
tags: | added: api |
Changed in nova: | |
status: | New → In Progress |
Changed in nova: | |
milestone: | none → liberty-2 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | liberty-2 → 12.0.0 |
Reviewed: https:/ /review. openstack. org/193132 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=013e3227336 c00a8a6d5b2b697 b3c93beb2d0701
Committed: https:/
Submitter: Jenkins
Branch: master
commit 013e3227336c00a 8a6d5b2b697b3c9 3beb2d0701
Author: PranaliDeore <email address hidden>
Date: Tue Jun 9 02:11:33 2015 -0700
Validate maximum limit for integer
If you pass limit value above mysql INT type to class-update api, then it raises 500 internal
quota-
server error.
Passed max_value= db.MAX_ INT to validate_integer()
method to get appropriate error.
Closes-Bug: #1463387 b6c35f1124ba40b 23ffef4c2f8
Change-Id: I1075a20ea0142d