[ZODB-Dev] Re: another reason to stop supporting versions

Jim Fulton jim at zope.com
Tue Apr 24 17:14:12 EDT 2007


On Apr 24, 2007, at 5:01 PM, Jim Fulton wrote:

>
> I'm 99.9% sure that version commit and abort are broken in  
> ZODB.DB.  The commit methods in CommitVersion, and AbortVersion  
> (and TransactionalUndo) call invalidate on the databse too soon --  
> before the transaction has committed.  This can have a number of  
> bad effects, including causing inconsistent data in connections.
>
> An argument for keeping version in the past was that they  
> "worked".  Well, I think they don't work and I'm not interested in  
> writing the test to fix them.  Is anyone else?
>
> I will write the necessary tests to fix the undo bug.

Oh and I'm pretty sure that transactional undo doesn't handle undo of  
transactions that touch versions correctly.  This runs pretty deep  
because the storage API implementations don't return enough  
information to handle versions.  The undo method returns a  
transaction id and a sequence of object ids, but it should return a  
sequence of object-id/version pairs.

Jim

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the ZODB-Dev mailing list