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.
Fix proposed to branch: master /review. openstack. org/58211
Review: https:/