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
>> 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...
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org