Order Creation fails with 500 with large bit_length

Bug #1376019 reported by Douglas Mendizábal
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Barbican
Fix Released
Medium
John Vrbanac

Bug Description

Order Creation fails with 500 when trying to submit an order with a bit_length that is bigger than what the database column for bit_length can hold.

2014-09-30 21:14:53.160 123 ERROR barbican.api.controllers [-] Order creation failure seen - please contact site administrator.
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers Traceback (most recent call last):
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/barbican/api/controllers/__init__.py", line 96, in handler
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers return fn(inst, *args, **kwargs)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/barbican/api/controllers/__init__.py", line 82, in enforcer
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers return fn(inst, *args, **kwargs)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/barbican/api/controllers/__init__.py", line 130, in content_types_enforcer
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers return fn(inst, *args, **kwargs)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/barbican/api/controllers/orders.py", line 255, in on_post
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers self.order_repo.create_from(new_order)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/barbican/model/repositories.py", line 357, in create_from
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers entity.save(session=session)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/barbican/model/models.py", line 112, in save
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers session.flush()
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1919, in flush
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers self._flush(objects)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2037, in _flush
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers transaction.rollback(_capture_exception=True)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers compat.reraise(exc_type, exc_value, exc_tb)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 2001, in _flush
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers flush_context.execute()
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers rec.execute(self)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 526, in execute
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers uow
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 65, in save_obj
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers mapper, table, insert)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 602, in _emit_insert_statements
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers execute(statement, params)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 729, in execute
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers return meth(self, multiparams, params)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/elements.py", line 321, in _execute_on_connection
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers return connection._execute_clauseelement(self, multiparams, params)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers compiled_sql, distilled_params
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 958, in _execute_context
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers context)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1160, in _handle_dbapi_exception
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers exc_info
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers reraise(type(exception), exception, tb=exc_tb)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers context)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 436, in do_execute
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers cursor.execute(statement, parameters)
2014-09-30 21:14:53.160 123 TRACE barbican.api.controllers DataError: (DataError) integer out of range

Tags: verified
description: updated
Changed in barbican:
status: New → Confirmed
importance: Undecided → Medium
milestone: none → kilo-1
Changed in barbican:
milestone: kilo-1 → none
description: updated
Changed in barbican:
status: Confirmed → New
Changed in barbican:
assignee: nobody → John Vrbanac (john.vrbanac)
status: New → Confirmed
milestone: none → kilo-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to barbican (master)

Fix proposed to branch: master
Review: https://review.openstack.org/142568

Changed in barbican:
status: Confirmed → In Progress
tags: added: verified
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to barbican (master)

Reviewed: https://review.openstack.org/142568
Committed: https://git.openstack.org/cgit/openstack/barbican/commit/?id=adb85962383c2e1d02b79e75a781d4e7483eaabc
Submitter: Jenkins
Branch: master

commit adb85962383c2e1d02b79e75a781d4e7483eaabc
Author: John Vrbanac <email address hidden>
Date: Wed Dec 17 14:11:23 2014 -0600

    Setting the max secret bit_length size to be 32767

    Setting the max size to be that of a MySQL signed small int.

    Change-Id: Iea0b3653151b6a794c3ad60b815e53d6b2a74359
    Closes-Bug: 1376019

Changed in barbican:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in barbican:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in barbican:
milestone: kilo-1 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.