[ZODB-Dev] Webkit Threading and ZODB 3.3a2: problems on Windows

Matt Feifarek matt at dalchemy.com
Thu Feb 19 18:34:39 EST 2004


Tim Peters wrote:

>Shane explained.  If you, e.g., mutate a persistent object P, bound to
>something.someattr, then merely rebinding something.someattr to None doesn't
>change that the transaction still has a change to P pending -- you need to
>commit that change, or abort it, and from the thread that made that
>mutation.
>  
>
It may turn out that some errant code is touching objects in a way that 
we hadn't planned on (ie, this is just a bug in our code).

I'm looking into that now with a debugger.

As a recent inductee to the ZODB world, I'd say we should get it into 
the docs that one must commit() or abort(), or Bad Things(r) will happen.

We got the impression that changes (if any) are discarded if you don't 
.commit(). It seems that it would be more correct to say that you must 
either commit or abort, or your data (and app) will become unstable.

>There's still no reason in this scenario for why it *can't* fail on Linux
>too, but reason to believe it would fail more frequently on Windows (and
>possibly much more frequently on Windows).
>
Good point.

I'm beginning to understand this whole thing. Thanks!






More information about the ZODB-Dev mailing list