gotcha, cool. was I first to run into this? :-)

On Nov 10, 5:57 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
> 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