[ZODB-Dev] Help: ZODB undo problem

Shane Hathaway shane@zope.com
Thu, 20 Jun 2002 09:34:24 -0400


Mike C. Fletcher wrote:
> Regarding ZODB3 versus ZODB4:
> 
>     ZODB4 is the only ZODB that will allow propertied new-style objects, 
> I believe. (Am I wrong?)  Everything in my system is propertied (that's 
> a fundamental design decision, no way to change it now short of 
> rewriting the whole application), so I went with ZODB4.

Ok, that makes sense.

>  I was under the 
> impression it was just ZODB3 with some (minor) changes to support the 
> new-style classes.  Guess I was wrong there.

A significant portion had to be rewritten to support new-style classes.

> Regarding _resetCache:
>     Are you sure about what happens in the situation you described 
> (holding onto a reference to an item originally in the cache?)  That 
> sounds exactly like what I was doing, and the result was the 
> ConflictError. There doesn't appear to be any corruption of the database 
> (any commit that would save the corrupted version is rejected, so 
> there's just no way of continuing through the error AFAICS), but that's 
> not a fully-tested statement.

ZODB may have some mechanism for rejecting duplicates, though I wouldn't 
count on it.

> Regarding reset:
>     I suppose I'm okay with it going away (like my opinion matters ;) 
> ).  I hadn't actually tested taking out just the reset (I'd taken out 
> the reset and the synch for testing, seen it fail then been distracted 
> by another bug somewhere before I tested just removing reset).

I just added warnings in comments instead.  (Your opinion does matter. :-) )

> Regarding Hair:
>     That's why I wear my hair long, makes it less of a loss when a 
> little decides to wander away :) .  Seriously, I know ZODB4 is 
> early-stages software. Seeing it based on such a stable piece of 
> software (ZODB3) I was probably hoping for too much reliability at this 
> stage.  This little application won't go final for a month or two, so 
> hopefully ZODB4 will be (more) stable by then.

Yes, there is probably some small bug in there that's preventing 
invalidations from taking effect.  Or perhaps invalidations aren't being 
sent at all.  I'm sure someone will get to the bottom of it eventually.

Happy coding!

Shane