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