[Zope-Checkins] CVS: StandaloneZODB/ZODB - FileStorage.py:1.65
Jeremy Hylton
jeremy@zope.com
Wed, 12 Sep 2001 17:36:16 -0400
Update of /cvs-repository/StandaloneZODB/ZODB
In directory cvs.zope.org:/tmp/cvs-serv31667
Modified Files:
FileStorage.py
Log Message:
Improve robustness of _restore_index()
Handle two new failure conditions by ignoring the index and
continuing:
- corrupted pickle in .index file
- no value for 'pos' in pickle (used to call long(None))
=== StandaloneZODB/ZODB/FileStorage.py 1.64 => 1.65 ===
p=Unpickler(f)
- info=p.load()
+ try:
+ info=p.load()
+ except:
+ exc, err, tb = sys.exc_info()
+ warn("Failed to load database index: %s: %s" %
+ (exc, err))
+ return None
index=info.get('index', None)
- pos=long(info.get('pos', None))
+ pos=info.get('pos', None)
oid=info.get('oid', None)
vindex=info.get('vindex', None)
if index is None or pos is None or oid is None or vindex is None:
return None
+ pos = long(pos)
tid=self._sane(index, pos)
if not tid: return None