From http://logs.openstack.org/29/43829/13/check/gate-tempest-devstack-vm-neutron-large-ops/49983d5
2013-10-21 21:03:14.615 5337 ERROR ceilometer.collector.dispatcher.database [-] Failed to record metering data: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database Traceback (most recent call last):
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/opt/stack/new/ceilometer/ceilometer/collector/dispatcher/database.py", line 65, in record_metering_data
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database self.storage_conn.record_metering_data(meter)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/opt/stack/new/ceilometer/ceilometer/storage/impl_sqlalchemy.py", line 171, in record_metering_data
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database source = session.query(Source).get(data['source'])
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 775, in get
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database return self._load_on_ident(key)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2514, in _load_on_ident
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database return q.one()
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2184, in one
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database ret = list(self)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2227, in __iter__
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database return self._execute_and_instances(context)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2240, in _execute_and_instances
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database close_with_result=True)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 2231, in _connection_from_session
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database **kw)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 784, in connection
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database close_with_result=close_with_result)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 788, in _connection_for_bind
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database return self.transaction._connection_for_bind(engine)
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 313, in _connection_for_bind
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database conn = bind.contextual_connect()
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2489, in contextual_connect
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database self.pool.connect(),
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 236, in connect
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database return _ConnectionFairy(self).checkout()
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 401, in __init__
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database rec = self._connection_record = pool._do_get()
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 738, in _do_get
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database (self.size(), self.overflow(), self._timeout))
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30
2013-10-21 21:03:14.615 5337 TRACE ceilometer.collector.dispatcher.database
this looks like a scalability issue. the logs look like the collector is flooded with meters: http:// logs.openstack. org/68/ 52768/1/ check/check- tempest- devstack- vm-full/ 76f83a4/ logs/screen- ceilometer- collector. txt.gz
we use oslo code to handle session/flushing... might be a place to look at (maybe there is a config option we need to set to handle such loads.)