[ZODB-Dev] RE: Corrupt db when trying to pack

Christian Robottom Reis kiko at async.com.br
Tue Oct 5 11:01:27 EDT 2004


On Mon, Oct 04, 2004 at 05:02:29PM -0400, Gerry Kirk wrote:
> This is getting more bizarre. I recopied Data.fs, ran fstest.py and
> fsrefs.py no problem, started up zope, click on pack, then this time I
> got an error related to global LOG not defined in 
> 
> Module ZODB.fspack, line 158, in fail
> 
> which is a method that reports a CorruptedError. I then ran fstest.py on
> the same file, and this time I got the error 
> 
> Data.fs data record exceeds transaction record at 684684623: tloc
> 684236170 != tpos 684244362

(I'm just jumping in and I lost the previous messages in this thread, so
beware any apparent madness in my comments)

Doesn't this just scream "hardware problems" to you? At least to me
corruption resulting from just touching the database and packing can
only be explained by:

    - Bugs in pack()
    - Bugs in your hardware

I assume you're using a "current" version of ZODB. If you're not,
upgrade before doing anything else as there were some pack() fixes that
went in a few months ago that may explain this. 

I would also recommend not pack()ing to now, but to some fixed date in
the past.

> So, I'm not sure what to think. Seems that there is still an issue here,
> but fstest.py and fsrefs.py don't detect it. 

Well, fstest.py sure seems to detect it -- I really think the issue here
is that the DB is getting corrupted between then and now.

> You mentioned upgrading to a newer version of ZODB. Is it just a matter
> of updating the python files? No need to do anything to the database
> itself?

Nothing needs to be done to the DB. It's just a matter of updating the
ZODB-related modules. setup.py install should do the right thing.

Take care,
--
Christian Robottom Reis | http://async.com.br/~kiko/ | [+55 16] 3361 2331


More information about the ZODB-Dev mailing list