lmdb.BadRslotError: mdb_txn_begin: MDB_BAD_RSLOT: неверное повторное использование слота с блокировкой читателя? - PullRequest
0 голосов
/ 05 июля 2019

Я экспериментировал с алгоритмом ближайшего соседа для изображений со стилем, представленным в этом посте (то есть цель состоит в том, чтобы увидеть, сколько почти похожих изображений существует). После того, как пример был адаптирован к моему случаю, я пару раз видел ошибку "lmdb.BadRslotError: mdb_txn_begin: MDB_BAD_RSLOT: недопустимое повторное использование слота с блокировкой чтения" , и мне интересно, в чем причина?

Моя гипотеза состоит в том, что это было вызвано открытием (одного и того же) lmdb дважды за один и тот же прогон (по крайней мере, он не появился после исправления), но не полностью уверен. Один из немногих поисковых запросов дан на другом форуме , но ответ не определен.

Итак, ошибка возникла из оператора .begin:

fn_lmdb = fn + '.lmdb'  # stores word <-> id mapping
env = lmdb.open(fn_lmdb, map_size=int(1e9))

with env.begin() as txn:
    ... 

В тот момент, когда я перешел в открытое положение рядом с началом, ошибка еще не появилась, но я не уверен, установил ли я причину или просто симптом ... Вы наткнулись на это, и каково было решение?

...