[Zope] POSKeyError nightmare
Dieter Maurer
dieter at handshake.de
Sun Sep 25 17:58:14 EDT 2005
Kevin Carlson wrote at 2005-9-24 22:28 -0400:
> ...
> File "/opt/Zope-2.7/lib/python/Products/ZCatalog/Lazy.py", line 138,
>in __init__
> else: self._len = len(seq)
> File "/opt/Zope-2.7/lib/python/ZODB/Connection.py", line 559, in setstate
> p, serial = self._storage.load(oid, self._version)
> File "/opt/Zope-2.7/lib/python/ZODB/FileStorage.py", line 689, in load
> return self._load(oid, version, self._index, self._file)
> File "/opt/Zope-2.7/lib/python/ZODB/FileStorage.py", line 657, in _load
> raise POSKeyError(oid)
>ZODB.POSException.POSKeyError: 00000000000e5fec
Your catalog contains the missing object
>oid 0x25506L BTrees.OOBTree.OOBucket
>last updated: 2005-09-19 10:00:59.079910, tid=0x3601B18FC130433L
>refers to invalid objects:
> oid 0xE5FEBL missing: 'Products.CMFDefault.File.File'
> oid 0xE5FECL missing: 'BTrees.OOBTree.OOBucket'
The second is the one shown in your traceback above.
This means: the "OOBucket" with oid "0x25506" contains
two broken references.
Load it from the ZODB. Determine which keys belong to
the broken references and delete these keys.
> ...
>All of the objects that are causing the POSKeyError I believe to be
>coming from a single instance of a very large BTreeFolder2 instance.
>Can anyone offer any remedy to remove or repair the offending objects?
You can fix them all as shown above.
While the "POSKeyError"s will go away, you have (of course)
lost information.
--
Dieter
More information about the Zope
mailing list