On Mon, Feb 15, 2010 at 10:41 AM, Andreas Jung <li...@zopyx.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi there,
>
> I am trying to check a Data.fs as used under Zope 2.10 for Poskey errors.
>
> Running fsrefs gives me the following:
>
> pl...@diaweb06:/data/zeo_buildout$ bin/zopepy
> ./parts/zope2/utilities/ZODBTools/fsrefs.py labor.fs.kaputt
> Traceback (most recent call last):
>  File "bin/zopepy", line 32, in ?
>    execfile(__file__)
>  File "./parts/zope2/utilities/ZODBTools/fsrefs.py", line 157, in ?
>    main()
>  File "./parts/zope2/utilities/ZODBTools/fsrefs.py", line 142, in main
>    refs = get_refs(data)
>  File "/data/zeo_buildout/parts/zope2/lib/python/ZODB/serialize.py",
> line 687, in get_refs
>    data = oid_klass_loaders[reference_type](*args)
> KeyError: 'n'

The script hasn't been updated to reflect changes in the record format.
It's choking on a cross-database reference.  I recommend using the
multi-zodb-check-refs script included in zc.zodbdgc package.
BTW, it has an option of creating a reverse-reference database,
which especially handy for debugging POSKeyErrors.

I should probably fold zc.zodbdgc into ZODB 3.10 and retire fsrefs.

Jim

-- 
Jim Fulton
_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to