[Zope] var/Data.fs: any way to regenerate from scratch?

Marc G. Fournier scrappy@hub.org
Tue, 25 Mar 2003 22:43:53 -0400 (AST)


We had a particularly impressive server crash a couple of weeks back,
where our RAID controller blew up ... the result was some pretty
impressive data corruption ... since the crash, we've been having a
problem with Zope 2.5.1, particularly the ability to manage the site.

When trying to Add Folder, it results in an error of:

Traceback (innermost last):
  File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 150, in publish_module
  File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 127, in publish
  File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 127, in publish
  File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 127, in publish
  File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 122, in publish
  File /usr/local/www/Zope/lib/python/Zope/__init__.py, line 126, in zpublisher_exception_hook
  File /usr/local/www/Zope/lib/python/ZPublisher/Publish.py, line 102, in publish
  File /usr/local/www/Zope/lib/python/Zope/__init__.py, line 173, in commit
  File /usr/local/www/Zope/lib/python/ZODB/Transaction.py, line 234, in commit
  File /usr/local/www/Zope/lib/python/ZODB/Connection.py, line 348, in commit
    (Info: (('OFS.Folder', 'Folder'), '\x00\x00\x00\x00\x00\x003\x97', ''))
  File /usr/local/www/Zope/lib/python/ZODB/FileStorage.py, line 668, in store
    (Object: /usr/local/www/Zope/var/Data.fs)
ConflictError: database conflict error (oid 0000000000003397, serial was 034b1b936fdaccb3, now 0000000000000000)

I tried to run the fsrecover.py script on the Data file (a copy of it),
and it closes with:

exceptions.ValueError: unpack list of wrong size

So I'm figuring that the Data.fs must be one of the casualties of the
crash ...

Now, Zope is a new one for me, and really have no idea of what the Data.fs
is even used for ... is it something that I can just delete and Zope will
just start building it from scratch?  Or is it something that I can
regenerate based on information from the file system?

I found the following link:

http://www.zope.org/Members/itamar/CorruptedZODB

And tried it, but it made no difference ... from what I read in the URL,
it sounds like I'm basically removing transactions, one at a time, from
Data.fs ... what does that affect (ie. what am I losing for each
transaction I remove)?  how far back can/should I remove?

Pointers, as well as advice, is greatly appreciated ...

Thanks ..