[Zope] Packing date screwed up

Dieter Maurer dieter@handshake.de
Sat, 28 Dec 2002 20:21:30 +0100


Cliff Quinn wrote at 2002-12-27 15:34 -0800:
 > I can't pack my database because at some point, with the machine time 
 > set at 2008 (don't ask) it was packed. How can I force this, or change the 
 > database date. I tried using the fsrecover, which tells me the dates are out 
 > of sequence, but doesn't do anything about it. I found a similar problem in 
 > the list archives, but no answer to it.
 > 
 > >Error Type: FileStorageError
 > >Error Value: The database has already been packed to a later time or no 
 > changes have been made since the last pack
 > 
 > (Zope 2.6.0 (binary release, python 2.1, win32-x86), python 2.1.3, win32) 
 > running on WIN98 (please don't laugh).
Your problem is probably bigger than you expect:

  You probably also have transactions in the future.

When you can, I would see whether the latest backup can be used written
when the time was still normal.

When this is not possible, I would use "tranalyzer" (maybe slightly
differently spelled) to analyse the "Data.fs" and see how much
staff comes with an wicked date and how much I would lose when I would
cut the file to a safe limit.

After that, I would search (using Zope's "Find" with a copy of the
old "Data.fs") for the objects changed in the future and
more the changes back (when they were not too many).

If all were unfeasible, I would look at the source of
"ZODB.fsrecover". It copies a "Data.fs" and repairs corrupt pieces.
Certainly, it could be modified to salvage strange transaction times.


Dieter