[ZODB-Dev] RE: Re: "Time travel" conflict errors in Zope

Jeremy Hylton jhylton at gmail.com
Mon Dec 20 14:35:54 EST 2004


On Mon, 20 Dec 2004 13:44:51 -0500, Tim Peters <tim at zope.com> wrote:
> > I would guess that, for efficiency reasons, the cache validation
> > procedure doesn't think too hard about the possibility of object changes
> > in the past that have already been missed,
> 
> Cache verification *intends* to be bulletproof.  If it isn't, it's a bug.
> It can take efficiency shortcuts when it believes they're 100% safe, but
> will fall back to exhaustive verification if it believes that's necessary.
> I suppose it's possible that out-of-disk-space caused a kind of corruption
> in the on-disk cache file that the code doesn't detect (and possibly could
> not detect -- cache files aren't laced with redundancy or checksums),
> violating some invariant the verification dance implicitly relies on.  I
> just don't know.

If you restart the ZEO client to refresh its cache, you will probably
take the fast path through the cache verification where the server
sends a list of modified objects to the server.  If the client saw
transaction T1 and failed to invalidate the objects it modified or if
the client missed T1 and saw a later transaction T2, then the fast
path code would not resend invalidations for T1.

Rather than adding extra complexity to the cache verification, it does
seem expedient to delete the cache file and restart.

Jeremy


More information about the ZODB-Dev mailing list