postgresql: (DataError) integer out of range

Bug #1254604 reported by Lianhao Lu
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ceilometer
Fix Released
Undecided
Lianhao Lu

Bug Description

When using postgresql as DB backend, sometimes we see it fails in storing the data,

2013-11-25 05:46:42.105 23393 ERROR ceilometer.openstack.common.db.sqlalchemy.session [req-77c1905a-c7de-4bd5-94e8-b9e1d5edabd4 None None] DB exception wrapped.
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session Traceback (most recent call last):
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/opt/stack/new/ceilometer/ceilometer/openstack/common/db/sqlalchemy/session.py", line 533, in _wrap
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session return f(*args, **kwargs)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/opt/stack/new/ceilometer/ceilometer/openstack/common/db/sqlalchemy/session.py", line 728, in flush
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session return super(Session, self).flush(*args, **kwargs)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1734, in flush
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session self._flush(objects)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1805, in _flush
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session flush_context.execute()
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 331, in execute
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session rec.execute(self)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 475, in execute
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session uow
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 64, in save_obj
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session table, insert)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 530, in _emit_insert_statements
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session execute(statement, multiparams)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1449, in execute
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session params)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session compiled_sql, distilled_params
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1698, in _execute_context
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session context)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1680, in _execute_context
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session context)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 328, in do_executemany
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session cursor.executemany(statement, parameters)
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session DataError: (DataError) integer out of range
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session 'INSERT INTO metadata_int (id, meta_key, value) VALUES (%(id)s, %(meta_key)s, %(value)s)' ({'id': 13241, 'value': 0, 'meta_key': u'min_ram'}, {'id': 13241, 'value': 0, 'meta_key': u'min_disk'}, {'id': 13241, 'value': 2147483648, 'meta_key': u'size'})
2013-11-25 05:46:42.105 23393 TRACE ceilometer.openstack.common.db.sqlalchemy.session
2013-11-25 05:46:42.113 23393 ERROR ceilometer.collector.dispatcher.database [req-77c1905a-c7de-4bd5-94e8-b9e1d5edabd4 None None] Failed to record metering data: (DataError) integer out of range
 'INSERT INTO metadata_int (id, meta_key, value) VALUES (%(id)s, %(meta_key)s, %(value)s)' ({'id': 13241, 'value': 0, 'meta_key': u'min_ram'}, {'id': 13241, 'value': 0, 'meta_key': u'min_disk'}, {'id': 13241, 'value': 2147483648, 'meta_key': u'size'})

In postgresql, integer should be between -2147483648 and +2147483647. we should use bigInt instead.

Lianhao Lu (lianhao-lu)
Changed in ceilometer:
assignee: nobody → Lianhao Lu (lianhao-lu)
milestone: none → icehouse-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ceilometer (master)

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

Changed in ceilometer:
status: New → In Progress
Revision history for this message
Lianhao Lu (lianhao-lu) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ceilometer (master)

Reviewed: https://review.openstack.org/58211
Committed: http://github.com/openstack/ceilometer/commit/75c382141cc8de7c92285a6dca32546f5f234b64
Submitter: Jenkins
Branch: master

commit 75c382141cc8de7c92285a6dca32546f5f234b64
Author: Lianhao Lu <email address hidden>
Date: Mon Nov 25 15:34:41 2013 +0800

    Change metadata_int's value field to type bigint

    Change-Id: Icac8bd1cf55da9f645b5e27c45b6c2c918dcdab3
    Closes-Bug: 1254604

Changed in ceilometer:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in ceilometer:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ceilometer:
milestone: icehouse-1 → 2014.1
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.