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

Tim Peters tim at zope.com
Mon Oct 4 17:31:47 EDT 2004


[Gerry Kirk]
> 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.

That the global LOG wasn't found is a bug in ZODB 3.2.1, which was repaired
in ZODB 3.2.2.  See the news file I pointed at last time for an account of
other bugs that have been fixed since then.

> 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
>
> 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.

You just set fstest did detect it <wink>.  When you're switching among .fs
files, are you also careful to delete the .fs.index file?  Strange things
can happen if you leave an .fs.index file sitting around that "belongs" to a
different .fs file.

> You mentioned upgrading to a newer version of ZODB. Is it just a matter
> of updating the python files?

And recompiling the C parts (some of ZODB is implemented in C).  Maybe
someone who normally runs on Linux here could give you a better answer; I
*think* it's just a matter of downloading the ZODB tarball, then running
"setup.py install" with some magical argument pointing to the lib/python/
part of your Zope tree.  Anyone know exactly what to do?

> No need to do anything to the database itself?

Correct.



More information about the ZODB-Dev mailing list