[Zope] Corrupted Data.fs

Alastair Burt burt@dfki.de
05 Nov 2001 14:00:22 +0100


My Data.fs seems to be in a truly sorry state.  When I try to start up
Zope, I get the following in my log file:

  2001-11-05T09:35:31 PANIC(300) z2 Startup exception
  Traceback (innermost last):
    File /home/burt/lib/zope/Zope-2.3.2-src/z2.py, line 566, in ?
    File <string>, line 1, in ?
    File /home/burt/Desktop/Zope/Zope-2.3.2-src/lib/python/Zope/__init__.py, line 110, in ?
    File ./FileStorage.py, line 308, in __init__
      (Object: /home/burt/etc/zope/instance_home1/var/Data.fs)
    File ./FileStorage.py, line 1694, in read_index
    File ./FileStorage.py, line 219, in panic
  CorruptedTransactionError: /home/burt/etc/zope/instance_home1/var/Data.fs redundant transaction length check failed at 46128576

When I try fsrecover, I get:

  Traceback (most recent call last):
    File "/home/burt/lib/zope/Zope-2.3.2-src/lib/python/ZODB/fsrecover.py", line 94, in ?
      FileStorage.recover(sys.argv[1])
    File "/home/burt/lib/zope/Zope-2.3.2-src/lib/python/ZODB/FileStorage.py", line 1537, in recover
      npos = shift_transactions_forward(
    File "/home/burt/lib/zope/Zope-2.3.2-src/lib/python/ZODB/FileStorage.py", line 1420, in shift_transactions_forward
      seek(pos)
  OverflowError: long int too long to convert

When I try tranalyzer, I get:

  Traceback (most recent call last):
    File "/home/burt/Desktop/Clutter/tranalyzer.py", line 333, in ?
      main(sys.argv)
    File "/home/burt/Desktop/Clutter/tranalyzer.py", line 325, in main
      t = Transaction(f, off, refs)
    File "/home/burt/Desktop/Clutter/tranalyzer.py", line 179, in __init__
      raise ValueError, 'transaction lengths mismatch'
  ValueError: transaction lengths mismatch

I can use tranalyzer to chop the Data.fs down to the transaction before
byte 46128576. But there are 2 MB of transactions after that. Do I have to
throw all this data away?

--- Alastair