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

Kapil Thangavelu hazmat at objectrealms.net
Fri Feb 20 11:36:02 EST 2004


On Thu, 2004-02-19 at 18:34, Matt Feifarek wrote:
> 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.
> 

or begin() which is the 'unmoral' equiv of abort.

> 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.
> 

its just standard transaction semantics, the fact that your working with
a transactional system and don't have well defined transaction
boundaries, seems to be the real problem. 

ie. if you were working w/ postgresql or mysql (innodb) the same issues
would apply.

-kapil




More information about the ZODB-Dev mailing list