yeah this is an "enhancement" we made, whereby InstanceState removes  
circular references from itself when its host object is garbage  
collected, thereby taking the load off of gc (and it does).   So in  
this case, asynchronous gc is occurring right as InstanceState is  
doing expire_attributes on itself, and the dict is getting swiped.    
We had this issue and did a None check, but that's obviously not  
enough since...well its asynchronous.  So r5283 turns "state.dict"  
into an attribute that will always spit out a dictionary if the "real"  
one was removed, and its looking like rc4 will be sooner rather than  
later as we are hitting a few glitches like this.


On Nov 10, 2008, at 8:28 PM, arashf wrote:

>
> Traceback (most recent call last):
> File "/srv/server/metaserver/metaserver/lib/base.py", line 56, in
> __call__
> ret = WSGIController.__call__(self, environ, start_response)
> File "/usr/lib/python2.5/site-packages/Pylons-0.9.6.2-py2.5.egg/ 
> pylons/
> controllers/core.py", line 195, in __call__
> after = self._inspect_call(self.__after__)
> wasn't getting this on the betas of sqlalchemy, but am getting it on
> rc3. any ideas?
>
> File "/usr/lib/python2.5/site-packages/Pylons-0.9.6.2-py2.5.egg/ 
> pylons/
> controllers/core.py", line 79, in _inspect_call
> result = func(**args)
> File "/srv/server/metaserver/metaserver/lib/base.py", line 96, in
> __after__
> metaserver.model.Session.commit()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0rc3-py2.5.egg/
> sqlalchemy/orm/scoping.py", line 121, in do
> return getattr(self.registry(), name)(*args, **kwargs)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0rc3-py2.5.egg/
> sqlalchemy/orm/session.py", line 670, in commit
> self.transaction.commit()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0rc3-py2.5.egg/
> sqlalchemy/orm/session.py", line 385, in commit
> self._remove_snapshot()
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0rc3-py2.5.egg/
> sqlalchemy/orm/session.py", line 306, in _remove_snapshot
> _expire_state(s, None)
> File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.0rc3-py2.5.egg/
> sqlalchemy/orm/attributes.py", line 985, in expire_attributes
> self.dict.pop(key, None)
> AttributeError: 'NoneType' object has no attribute 'pop'
> >


--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to