[ZODB-Dev] How to fix "CorruptedDataError: Error reading unknown oid. Found '' at 81036527"?

Jim Fulton jim at zope.com
Thu Jul 14 09:18:46 EDT 2011


On Thu, Jul 14, 2011 at 7:54 AM, Andreas Jung <lists at zopyx.com> wrote:
> I have a customer site (Plone 3.0.6) causing an error during packing:
>
>  Module ZPublisher.Publish, line 119, in publish
>  Module ZPublisher.mapply, line 88, in mapply
>  Module ZPublisher.Publish, line 42, in call_object
>  Module <string>, line 3, in _facade
>  Module AccessControl.requestmethod, line 64, in _curried
>  Module App.ApplicationManager, line 431, in manage_pack
>  Module ZODB.DB, line 624, in pack
>  Module ZEO.ClientStorage, line 846, in pack
>  Module ZEO.ServerStub, line 165, in pack
>  Module ZEO.zrpc.connection, line 650, in call
> CorruptedDataError: Error reading unknown oid.  Found '' at 81036527
> ^C2011-07-14 13:36:22 INFO SignalHandler Caught signal SIGINT
> 2011-07-14 13:36:22 INFO Z2 Shutting down

That error message seems rather weird. WTF SIGINT?


>
> Using multi-zodb-gc reveals an error:
>
> plone at web1:~/poskeyerror-check$ bin/multi-zodb-gc storage.cfg
> <zc.zodbdgc.Bad instance at 0x20578c0>
>
> plone at web1:~/poskeyerror-check$ bin/multi-zodb-check-refs storage.cfg
>
>
> Using fscover.py does not help here..
>
> plone at web1:~/poskeyerror-check$ bin/python
> ./lib/python2.6/site-packages/ZODB3-3.10.3-py2.6-linux-x86_64.egg/ZODB/fsrecover.py
> Data.fs Data2.fs
> Recovering Data.fs into Data2.fs
> No handlers could be found for logger "ZODB.FileStorage"
> . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 0
> 0 bytes removed during recovery
>
> Any more options?

Use multi-zodb-check-refs with the -r option to get a database of
reverse references.
Use that do figure out what's refering to the missing object and fix
that object(s) so that
it no longer does.

Jim

-- 
Jim Fulton
http://www.linkedin.com/in/jimfulton


More information about the ZODB-Dev mailing list