someone ran into a variant of it earlier, and we've had other variants in the past.
On Nov 10, 2008, at 10:36 PM, arashf wrote: > > 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 -~----------~----~----~----~------~----~------~--~---