[Zope] Not Fixed - Re: Versions problem in 2.6.1

John Eikenberry jae@kavi.com
Fri, 21 Feb 2003 15:46:07 -0800


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