[ZODB-Dev] problem with _p_mtime
Dieter Maurer
dieter at handshake.de
Sat Dec 6 14:17:16 EST 2008
Miles Waller wrote at 2008-12-4 19:42 +0000:
>fstest - no problems
>checkbtrees - no problems
>
>fsrefs - returns errors about invalid objects (and reports all objects
>as last updated: 5076-10-09 17:19:26.809896!), and finally fails with a
>KeyError
>
>Traceback (most recent call last):
> File "/usr/local/Zope-2.9.8/bin/fsrefs.py", line 157, in ?
> main(path)
> File "/usr/local/Zope-2.9.8/bin/fsrefs.py", line 130, in main
> refs = get_refs(data)
> File "/usr/local/Zope-2.9.8/lib/python/ZODB/serialize.py", line 687,
>in get_refs
> data = oid_klass_loaders[reference_type](*args)
>KeyError: 'n'
This indicates that "fsrefs" does not understand the data.
There are several possible causes:
* "fsrefs" does not have the correct version
* "fsrefs" has a bug
* your storage is damaged.
As you have reported that the storage content could be successfully
exported, a damage is not that likely (the export should have the
same problem in this case).
>
>I think I can see some corruption in the oids of the referenced objects
>as they show as:
>\x00\x00\x00\x00\x00\x11'@
>\x00\x00\x00\x00\x00#\xd4\xa9
>\x00\x00\x00\x00\x00\x11'*
>etc... - i wasn't expecting to see #@* and friends.
This does not indicate any corruption: the oids are treated as
8 byte binary strings. If a byte has a printable representation,
this one is used on printing, otherwise its hex representation.
>For example, fsrefs reports not being able to find
>'\x00\x00\x00\x00\x00#\xd4"'. However, I can load the database at the
>zopectl prompt and load objects, and get ob._p_oid to report
>'\x00\x00\x00\x00\x00#\xd4"'.
Looks like an "fsrefs" bug.
If you can load an object from the storage, "fsrefs" should not report
it as missing.
>I also wondered if the first few bytes of the database could have been
>cut off
This is unlikely.
The first bytes contain a magic number (identifying the storage format).
I think, a "FileStorage" would not open when the magic number were
unrecognizable.
--
Dieter
More information about the ZODB-Dev
mailing list