On 3/20/07, Chris Withers <[EMAIL PROTECTED]> wrote:
Dieter Maurer wrote:
> Chris Withers wrote at 2007-3-16 08:45 +0000:
>> Is there any way an object could be invalidated without there being a
>> non-current revision to read?
> Sure (through a call to "ZODB.DB.DB.invalidate"), although usually
> it is done only after the object changed.
OK. I'm still not clear on whether what you describe is a bug or simply
what might happen now?
The MVCC implementation might not be prepared to cope with an explicit
call to invalidate. Yould also achieve this by calling some method on
the object, right? _p_invalidate()? I don't remember the details.
In either case, I suspect that is a bug in the implementation, but
it's not clear if it explains your problem.
> We are using it to cause objects to be flushed from all
> ZODB connection caches (because we know that their "_v_" might
> contain an inconsistent state).
> Fortunately, we did not yet met the "loadBefore" problem you have hit.
Oh, so it's just me who's lucky? ;-)
>> What are the possible causes of invalidation?
> A change of the object or some explicit call for invalidation.
I don't think any explicit calls are involved here...
Simplistix - Content Management, Zope & Python Consulting
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org