Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   shelve, segfault and bsddb.db.DBPageNotFoundError: (-30987, (http://www.velocityreviews.com/forums/t701535-shelve-segfault-and-bsddb-db-dbpagenotfounderror-30987-a.html)

Gabriel Rossetti 10-14-2009 10:40 AM

shelve, segfault and bsddb.db.DBPageNotFoundError: (-30987,
 
Hello everyone, I get the following error with the shelve module (python
2.5.2) sometimes :

>>> s = shelve.open("save.dat", writeback=True)
>>> s

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/UserDict.py", line 167, in __repr__
return repr(dict(self.iteritems()))
File "/usr/lib/python2.5/UserDict.py", line 105, in iteritems
for k in self:
File "/usr/lib/python2.5/UserDict.py", line 92, in __iter__
for k in self.keys():
File "/usr/lib/python2.5/shelve.py", line 92, in keys
return self.dict.keys()
File "/usr/lib/python2.5/bsddb/__init__.py", line 252, in keys
return _DeadlockWrap(self.db.keys)
File "/usr/lib/python2.5/bsddb/dbutils.py", line 62, in DeadlockWrap
return function(*_args, **_kwargs)
bsddb.db.DBPageNotFoundError: (-30987, 'DB_PAGE_NOTFOUND: Requested page
not found')

This must mean that my file is currupt, correct? If I do the following I
get a segfault :

>>> len(s)

Segmentation fault

Is this a bug? So as a workaround I must do something like this :

s = shelve.open("save.dat", writeback=True)
try:
s.keys()
except bsddb.db.DBPageNotFoundError, e:
os.remove("save.dat")
s = shelve.open("save.dat", writeback=True)

Any other ideas/comments? Does anyone else have this problem?

Thanks,
Gabriel



All times are GMT. The time now is 04:27 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.