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 Fulton mailto:[EMAIL PROTECTED] Python
CTO (540) 361-1714
Zope Corporation http://www.zope.com http://www.zope.org
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org