SQLAlchemy storage fails in ceilometer-collector

Bug #1624114 reported by Julien Danjou
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Panko
Invalid
Critical
Unassigned

Bug Description

It seems that it does not work currently:

2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy [-] Failed to record event: When initializing mapper Mapper|Meter|meter, expression 'Sample' failed to locate a name ("name 'Sample' is not defined"). If this is a class name, consider adding this relationship() to the <class 'ceilometer.storage.sqlalchemy.models.Meter'> class after both dependent classes have been defined.
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy Traceback (most recent call last):
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/opt/stack/new/panko/panko/event/storage/impl_sqlalchemy.py", line 178, in record_events
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy event_model.event_type, session=session)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/opt/stack/new/panko/panko/event/storage/impl_sqlalchemy.py", line 156, in _get_or_create_event_type
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy et = session.query(models.EventType).filter(
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1260, in query
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy return self._query_cls(entities, self, **kwargs)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 110, in __init__
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy self._set_entities(entities)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 120, in _set_entities
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy self._set_entity_selectables(self._entities)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 150, in _set_entity_selectables
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy ent.setup_entity(*d[entity])
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/query.py", line 3446, in setup_entity
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy self._with_polymorphic = ext_info.with_polymorphic_mappers
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 754, in __get__
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy obj.__dict__[self.__name__] = result = self.fget(obj)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/mapper.py", line 1893, in _with_polymorphic_mappers
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy configure_mappers()
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/mapper.py", line 2770, in configure_mappers
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy mapper._post_configure_properties()
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/mapper.py", line 1710, in _post_configure_properties
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy prop.init()
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/interfaces.py", line 183, in init
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy self.do_init()
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/relationships.py", line 1628, in do_init
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy self._process_dependent_arguments()
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/relationships.py", line 1685, in _process_dependent_arguments
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy self.target = self.mapper.mapped_table
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 754, in __get__
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy obj.__dict__[self.__name__] = result = self.fget(obj)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/relationships.py", line 1601, in mapper
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy argument = self.argument()
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/clsregistry.py", line 293, in __call__
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy (self.prop.parent, self.arg, n.args[0], self.cls)
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy InvalidRequestError: When initializing mapper Mapper|Meter|meter, expression 'Sample' failed to locate a name ("name 'Sample' is not defined"). If this is a class name, consider adding this relationship() to the <class 'ceilometer.storage.sqlalchemy.models.Meter'> class after both dependent classes have been defined.
2016-09-08 18:07:14.043 29687 ERROR panko.event.storage.impl_sqlalchemy

Since we don't have much functional test in the gate, we missed it probably.

Julien Danjou (jdanjou)
Changed in panko:
status: New → Triaged
importance: Undecided → Critical
Revision history for this message
Julien Danjou (jdanjou) wrote :

I wonder if it's not only a problem when using the same database than Ceilometer?

Revision history for this message
Julien Danjou (jdanjou) wrote :

I wonder if it's not only a problem when using the same database than Ceilometer?

I can imagine SQLAlchemy recognizing that the URL is the same and therefore returning the same kind of session for both Panko and Ceilometer, making it think that it should know about all the tables/classes whereas it's not the case.

Revision history for this message
gordon chung (chungg) wrote :

can't fine anywhere which references Sample or Meter in panko code. seems to be a bad transisition from ceilometer.

Changed in panko:
status: Triaged → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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