Le 03/02/14 15:12, Marius Gedminas a écrit :
Could you tell us why that test depends on Acquisition?  Is it possible
to replicate the bug using pure Python code?

Marius Gedminas

I have not been able to replicate the bug with pure Python code. Reason why it took me so much time.

IIRC, the issue is that on newly created objects that inherit from Acquisition.Implicit, the _p_jar attribute has a value (I guess it is acquired). Without acquisition, because a newly created BTree._p_jar does not have any value before transaction is committed, any call to readCurrent is then discarded.

I understand this gives the feeling that the fix should be in Acquisition rather than in ZODB. I have tried to make a fix for the Acquisition code but was unable to understand enough.

Nevertheless, my understanding of the readCurrent API makes me think that it is actually useless to keep reference to newly created objects (iow in same transaction). And that the fix I propose makes sense anyway.

--
Godefroid Chapelle (aka __gotcha) http://bubblenet.be

--
Godefroid Chapelle (aka __gotcha) http://bubblenet.be

_______________________________________________
For more information about ZODB, see http://zodb.org/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to