[ZODB-Dev] Re: More exciting ZODB errors ;-)

Dieter Maurer dieter at handshake.de
Mon Jun 26 14:42:32 EDT 2006


Hallo Florent,

Florent Guillaume wrote at 2006-6-26 00:53 +0200:
>Dieter Maurer wrote:
>> Chris Withers wrote at 2005-12-14 16:23 +0000:
>>> ...
>>>   File "lib/python/ZODB/Connection.py", line
>>> 788, in _setstate_noncurrent
>>>     assert end is not None
>>> AssertionError
>> 
>> This means that the latest modification for this object
>> lies before the respective transaction.
>> 
>> In this case, we should not have an invalidation for the object,
>> such that we would not call "_setstate_current".
>> 
>> I expect a missing "flush_invalidations" during "Connection._setDB".
>> I had to add such a call in our ZODB version:
> ...
>This patch didn't seem to cure our Zope 2.8 afflicted with the "assert 
>end is not None" problem. Could you expand a bit on why you think it 
>would matter? From what I understand of the code, it would only come 
>into play during a refresh() operation.

You are right. My modification only makes refresh safer.

>Could you expand on the "it does 
>more than cache handling"? Invalidations being synchronous,

It also resets "connection._invalidated" and "connection._txn_time".

>BTW do you have other patches in your local patched ZODB? I'm willing to 
>look at all of them and see if they can be integrated.

Lot's of them (but not related to this problem which
I haven't seen so far) -- and not all of them working already.

I could make a tarball from the ZODB parts but I doubt that
you would be very happy with it...



-- 
Dieter


More information about the ZODB-Dev mailing list