Ticket #11 (closed defect: fixed)
Since revision 221, dropping all tables can occasionally cause an infinitely recursive call
| Reported by: | guest | Owned by: | ged |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.4 |
| Component: | core | Version: | |
| Keywords: | Cc: | Chris Wagner <cw264701@…> |
Description
I haven't looked very deeply into this problem yet, but if you need more info, please let me know. I will simply provide you with a stack trace, for now:
Traceback (most recent call last):
File "/home/chris/projects/easyweaze/easyweaze/test/web_tests/test_signup.py", line 18, in setUp
RequiresCleanDatabaseTestCase.setUp(self)
File "/home/chris/projects/easyweaze/easyweaze/test/__init__.py", line 19, in setUp
models.drop_all_database_tables()
File "./../easyweaze/models.py", line 40, in drop_all_database_tables
File "/usr/local/lib/python2.5/site-packages/elixir/__init__.py", line 103, in drop_all
md.drop_all(*args, **kwargs)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/schema.py", line 1250, in drop_all
bind.drop(self, checkfirst=checkfirst, tables=tables)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1046, in drop
self._run_visitor(self.dialect.schemadropper, entity, connection=connection, **kwargs)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line 1071, in _run_visitor
visitorcallable(self.dialect, conn, **kwargs).traverse(element)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/sql/visitors.py", line 63, in traverse
meth(target)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/sql/compiler.py", line 889, in visit_metadata
collection = [t for t in metadata.table_iterator(reverse=True, tables=self.tables) if (not self.checkfirst or self.dialect.has_table(self.connection, t.name, schema=t.schema))]
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 650, in table_iterator
return original_table_iterator(*args, **kwargs)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/schema.py", line 1146, in table_iterator
return iter(sorter.sort(reverse=reverse))
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/sql/util.py", line 136, in sort
self._sorted = self._do_sort()
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/sql/util.py", line 157, in _do_sort
vis.traverse(table)
File "/usr/local/lib/python2.5/site-packages/sqlalchemy/sql/visitors.py", line 56, in traverse
for c in t.get_children(**self.__traverse_options__):
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 543, in __getattr__
proxied_attr = getattr(self.class_, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
... (and on and on like that for many more frames) ...
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 556, in __get__
return getattr(owner, self.attrname)
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 555, in __get__
_auto_setup_all()
File "/usr/local/lib/python2.5/site-packages/elixir/entity.py", line 708, in _auto_setup_all
_cleanup_autosetup_triggers(entity)
RuntimeError: maximum recursion depth exceeded
Sorry for the short description! Please let me know if you need more detail. :)
Change History
Note: See
TracTickets for help on using
tickets.
