![]() |
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 02:36 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.