我正在使用berkdb存儲一個巨大的鍵值對列表,但由於某些原因,當我嘗試訪問某些數據後,發生此錯誤:DEADLOCK_WRAP在python中使用Berkeley DB時出錯(bsddb)
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']
我不確定什麼是DeadlockWrap,但沒有任何其他程序或進程訪問berkdb或寫入它(據我所知),所以不知道我們如何得到一個死鎖,如果它指的是。我試圖快速訪問數據可能嗎?我在一個循環中調用該函數,所以像
for i in hugelist:
#try to get a value from the berkdb
#do something with it
我與多個數據集運行這個和這個錯誤只與其中一人出現,最大的一個,而不是其他人。