[ZODB-Dev] ConflictError: database conflict error
Tim Peters
tim at zope.com
Mon Jan 10 16:18:58 EST 2005
[Bob Horvath]
...
> fsrefs is not silent. Two objects "failed to load" and there were 279
> "missing".
>
> ...
>
> The output from them are at...
>
> http://files.horvath.com/fstest.out
> http://files.horvath.com/fsrefs.out
There's no "failed to load" output in that file. If you run fsrefs with -v,
it will show a traceback when something fails to load, and that gives more
clues. You were running an old-enough version of fsrefs that it would give
spurious "failed to load" messages for objects whose creation had merely
been undone, though (that's a bug, repaired in ZODB 3.2.4).
> http://files.horvath.com/fsdump.out (very large)
Sorry, that file doesn't exist.
> So what do you do with a file like that?
Staring at it until your eyes bleed is a good start <0.8 wink>. All your
"missing objects" are BTrees, Buckets, and TreeSets. It's impossible for me
to guess what they're being used for, especially since fsdump.out doesn't
exist.
In generally, you can search fsdump.py's output for the oids in fsrefs.py's
output, and hope to guess what purpose these objects served. With luck,
they were created and modified by transactions that added a comment, and
fsdump shows those comments (when they exist). For example, it's *possible*
(I'm not claiming it's likely) that all these missing objects are simply
parts of catalogs or indices that could be recreated by rebuilding them from
scratch. Don't know, and can't tell from here. That's where your knowledge
of your app comes in.
More information about the ZODB-Dev
mailing list