Hi, I have a pylons application using file based beaker sessions (not to be confused with SQLAlchemy Sessions.) I retrieve a mapped object from the database, detach it from the SQLAlchemy Session like so:
Session.expunge(object) and save it to the beaker session (basically pickling it to a file.) like so: session['user'] = user session.save() If I restart the server and retrieve the pickled object from the session, merge it back into the SQLAlchemy Session everything seems to be fine. user = Session.merge(session['user'], dont_load=True) But then somewhere in the beaker session middleware something goes awry before it completes the call to the controller. Now I know this sounds like a beaker session problem but it is failing when it is making a call to the SQLAlchemy object. Here is the stack trace: URL: http://127.0.0.1:5000/ File '/Users/kevin/mydevenv/lib/python2.6/site-packages/ WebError-0.10.1-py2.6.egg/weberror/evalexception.py', line 431 in respond app_iter = self.application(environ, detect_start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Paste-1.7.2- py2.6.egg/paste/recursive.py', line 80 in __call__ return self.application(environ, start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/middleware.py', line 73 in __call__ return self.app(environ, start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/middleware.py', line 152 in __call__ return self.wrap_app(environ, session_start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Routes-1.10.3- py2.6.egg/routes/middleware.py', line 130 in __call__ response = self.app(environ, start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Pylons-0.9.7- py2.6.egg/pylons/wsgiapp.py', line 125 in __call__ response = self.dispatch(controller, environ, start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Pylons-0.9.7- py2.6.egg/pylons/wsgiapp.py', line 324 in dispatch return controller(environ, start_response) File '/Users/kevin/Documents/workspace/ryzoe/ryzoe/lib/base.py', line 54 in __call__ return WSGIController.__call__(self, environ, start_response) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Pylons-0.9.7- py2.6.egg/pylons/controllers/core.py', line 284 in __call__ return response(environ, self.start_response) File 'build/bdist.macosx-10.6-universal/egg/webob/__init__.py', line 2182 in __call__ File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/middleware.py', line 146 in session_start_response session.persist() File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/session.py', line 600 in persist self._session().save() File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/session.py', line 293 in save self.namespace.release_write_lock() File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/container.py', line 149 in release_write_lock self.close(checkcount=True) File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/container.py', line 172 in close self.do_close() File '/Users/kevin/mydevenv/lib/python2.6/site-packages/Beaker-1.4.1- py2.6.egg/beaker/container.py', line 536 in do_close cPickle.dump(self.hash, fh) File '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6/copy_reg.py', line 84 in _reduce_ex dict = getstate() File '/Users/kevin/mydevenv/lib/python2.6/site-packages/ SQLAlchemy-0.5.6-py2.6.egg/sqlalchemy/orm/collections.py', line 607 in __getstate__ return {'key': self.attr.key, AttributeError: 'NoneType' object has no attribute 'key' Here is the mapper of the object that is pickled: orm.mapper(Manager, manager_table, inherits=User, polymorphic_identity='manager', properties={'residences': relation(Residence, lazy=False, back_populates='manager')}) In the end, I can always just flush the cache (delete the files) on a server restart but something is striking me odd as to why this is failing. I want to make sure I don't have some flawed understanding of something somewhere. Any help would be greatly appreciated. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---