[ZODB-Dev] Random POSKeyErrors

Pedro Ferreira jose.pedro.ferreira at cern.ch
Wed Jul 21 12:40:18 EDT 2010


> http://www.zopyx.de/blog/checking-your-zodb-storages-for-poskey-errors
>
>    

Thanks a lot. Unfortunately, it seems like this script only works for 64 
bit oids... which doesn't seem to be the case.

"""
Traceback (most recent call last):
   File "/usr/bin/multi-zodb-check-refs", line 8, in <module>
     load_entry_point('zc.zodbdgc==0.6.0', 'console_scripts', 
'multi-zodb-check-refs')()
   File 
"/usr/lib/python2.6/site-packages/zc.zodbdgc-0.6.0-py2.6.egg/zc/zodbdgc/__init__.py", 
line 558, in check_command
     check(args[0], options.refdb)
   File 
"/usr/lib/python2.6/site-packages/zc.zodbdgc-0.6.0-py2.6.egg/zc/zodbdgc/__init__.py", 
line 424, in check
     return check_(config)
   File 
"/usr/lib/python2.6/site-packages/zc.zodbdgc-0.6.0-py2.6.egg/zc/zodbdgc/__init__.py", 
line 511, in check_
     print '!!!', name, u64(oid),
   File 
"/usr/lib/python2.6/site-packages/zc.zodbdgc-0.6.0-py2.6.egg/zc/zodbdgc/__init__.py", 
line 42, in u64
     return struct.unpack(">q", v)[0]
struct.error: unpack requires a string argument of length 8
"""

I've also had to change the following line:

"""
-        name, oid = roots.pop()
+        name, oid = roots.popitem()
"""

Cheers,

Pedro

-- 
José Pedro Ferreira

Indico Team

IT-UDS-AVC

513-R-0042
CERN, Geneva, Switzerland



More information about the ZODB-Dev mailing list