J'utilise une base de données berkdb pour stocker une énorme liste de paires clé-valeur mais pour une raison quelconque, lorsque j'essaie d'accéder à certaines des données plus tard, j'obtiens cette erreur :
try:
key = 'scrape011201-590652'
contenttext = contentdict[key]
except:
print the error
<type 'exceptions.KeyError'> 'scrape011201-590652' in
contenttext = contentdict[key]\n', ' File "/usr/lib64/python2.5/bsddb/__init__.py",
line 223, in __getitem__\n return _DeadlockWrap(lambda: self.db[key]) #
self.db[key]\n', 'File "/usr/lib64/python2.5/bsddb/dbutils.py", line 62, in
DeadlockWrap\n return function(*_args, **_kwargs)\n', ' File
"/usr/lib64/python2.5/bsddb/__init__.py", line 223, in <lambda>\n return
_DeadlockWrap(lambda: self.db[key]) # self.db[key]\n']
Je ne suis pas sûr de ce qu'est DeadlockWrap mais il n'y a aucun autre programme ou processus qui accède à la base de données berkdb ou qui y écrit (pour autant que je sache), donc je ne sais pas comment nous pourrions obtenir un blocage, si cela fait référence à cela. Est-il possible que j'essaie d'accéder rapidement aux données ? J'ai cet appel de fonction dans une boucle, donc quelque chose comme
for i in hugelist:
#try to get a value from the berkdb
#do something with it
Je l'exécute avec plusieurs ensembles de données et cette erreur ne se produit qu'avec l'un d'entre eux, le plus grand, mais pas avec les autres.