Hi, I think that the actual error (the root cause which caused the transaction to crash) does not appear in your log.
Also, you currently store the first name of the user in the session : user = web.ctx.orm.query(User).filter(User.username==web.ctx.session.user).first() I think it would be safer (and faster) to store the id of the user (the primary key) in the session instead : user = web.ctx.orm.query(User).get(web.ctx.session.user_id) Cheers On Thu, Apr 5, 2012 at 4:09 AM, jeffkyjin <[email protected]> wrote: > I am running a shop use web.py. the database I use is sqlite. > Now, some SQLAlchemy session error come out. > > 2012-04-05 10:01:33: (mod_fastcgi.c.2711) FastCGI-stderr: Traceback > (most recent call last): > File "/usr/local/lib/python2.6/dist-packages/web.py-0.34-py2.6.egg/ > web/application.py", line 242, in process > return self.handle() > File "/usr/local/lib/python2.6/dist-packages/web.py-0.34-py2.6.egg/ > web/application.py", line 233, in handle > return self._delegate(fn, self.fvars, args) > File "/usr/local/lib/python2.6/dist-packages/web.py-0.34-py2.6.egg/ > web/application.py", line 399, in _delegate > return handle_class(f) > File "/usr/local/lib/python2.6/dist-packages/web.py-0.34-py2.6.egg/ > web/application.py", line 390, in handle_class > return tocall(*args) > File "/home/shopapp/users.py", line 291, in GET > user = > web.ctx.orm.query(User).filter(User.username==web.ctx.session.user).first() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/query.py", line 1652, in first > ret = list(self[0:1]) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/query.py", line 1560, in __getitem__ > return list(res) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/query.py", line 1721, in __iter__ > return self._execute_and_instances(context) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/query.py", line 1726, in > _execute_and_instances > mapper=self._mapper_zero_or_none()) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/session.py", line 724, in execute > clause, params or {}) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1191, in execute > params) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1269, in > _execute_clauseelement > parameters=params > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1382, in > __create_execution_context > None, None) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1377, in > __create_execution_context > connection=self, **kwargs) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/default.py", line 392, in __init__ > self.cursor = self.create_cursor() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/default.py", line 534, in create_cursor > return self._connection.connection.cursor() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/pool.py", line 423, in cursor > c = self.connection.cursor(*args, **kwargs) > ProgrammingError: (ProgrammingError) Cannot operate on a closed > database. None [{}] > > Traceback (most recent call last): > File "/usr/local/lib/python2.6/dist-packages/web.py-0.34-py2.6.egg/ > web/application.py", line 240, in process > return p(lambda: process(processors)) > File "/home/shopapp/models.py", line 31, in load_sqla > web.ctx.orm.commit() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/scoping.py", line 139, in do > return getattr(self.registry(), name)(*args, **kwargs) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/session.py", line 614, in commit > self.transaction.commit() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/orm/session.py", line 389, in commit > t[1].commit() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1535, in commit > self._do_commit() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1562, in _do_commit > self.connection._commit_impl() > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 1097, in _commit_impl > self.engine.dialect.do_commit(self.connection) > File "/usr/local/lib/python2.6/dist-packages/SQLAlchemy-0.6.8- > py2.6.egg/sqlalchemy/engine/base.py", line 917, in connection > "Can't reconnect until invalid " > InvalidRequestError: Can't reconnect until invalid transaction is > rolled back > > -- > You received this message because you are subscribed to the Google Groups > "web.py" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/webpy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/webpy?hl=en.
