Stefan Loidl wrote:
I've tried your fix, but unfortunately it didn't fix my problems with versions. After some time using versions my Data.fs gets corrupt (happens with Zope 2.5.1 and Zope 2.6.1).
We didn't see the problem with versions until we ran into the problem of the versions not being saved in 2.6.1. My "fix" made it so that they do get saved, but you're right it doesn't fix the corruption problem you note below. You don't mention (but you've probably seen it) that after the first appearance of this corruption additional version based changes not only give this error, but also result in multiple 'bad transaction length' errors. Eg. __main__.ErrorFound: bad transaction length at 5095413 Have you experienced any problems with actually using the site after this corruption occurs? So far I only see that its happened by running fsrecover.py, otherwise the sites work as they should. I'm going to look into it some, as would be quite bad if it interfears with content delivery. We don't use versions internally, but use them in our custom client content editing code. Its a feature that several of our clients use, so we can't just disable it. :P Are you still looking into this and/or have you submitted it to the bugtracker?
So just one question, did you ever try to run lib/python/ZODB/fsrecover.py on your Data.fs (be aware of overwriting your Data.fs if you haven't used fsrecover.py before)? Even if I only do one change to a DTML Document using a version and save the version afterwards, I always get a: ZODB.POSException.VersionLockError: ("'\\x00\\x00\\x00\\x00\\x00\\x00\\x00T'", '/Test Version') from fsrecover.py.
I only get rid of this kind of error by packing the database in the database control panel or by exporting and importing my application.
Note that this is only of limited help as it only works when all versions have been committed. If you pack with open versions it also currupts the database. We've seen this internally, and its been mentioned on zodb-dev: http://mail.zope.org/pipermail/zodb-dev/2002-April/002540.html -- John Eikenberry [jae@kavi.com] ______________________________________________________________ "A society that will trade a little liberty for a little order will deserve neither and lose both." --B. Franklin