MemoryError: Невозможно выделить память - BDB2034 не может выделить память для мьютекса;изменить размер области мьютекса - PullRequest
0 голосов
/ 21 сентября 2018

Я создал базу данных на основе файла черепахи (размером ~ 4,5 Гб) с помощью rdflib и начал запрашивать ее с помощью SPARQL, все работало гладко, но через некоторое время я начинаю получать эту ошибку:

MemoryError: (12, «Невозможно выделить память - BDB2034 не может выделить память для мьютекса; изменить размер области мьютекса»)

Полный вывод:

File "/usr/local/lib/python3.6/site-packages/rdflib/graph.py", line 377, in open
    return self.__store.open(configuration, create)
  File "/usr/local/lib/python3.6/site-packages/rdflib/plugins/sleepycat.py", line 167, in open
    self.__namespace.open("namespace", dbname, dbtype, dbopenflags, dbmode)
MemoryError: (12, 'Cannot allocate memory -- BDB2034 unable to allocate memory for mutex; resize mutex region')

Минимальный сценарий:

from rdflib import ConjunctiveGraph, Namespace, Literal
from rdflib.store import NO_STORE, VALID_STORE

db_path = "my_db"
g = ConjunctiveGraph('Sleepycat')
# Open the DB
g.open(db_path, create=False) # <--- this line causes the error

Я не знаю причину проблемы, я проверил, достаточно ли у меня оперативной памяти, использования процессора и дискового пространства, все было в порядке, я перезагрузил компьютер, ноошибка сохранилась

1 Ответ

0 голосов
/ 27 мая 2019

Из каталога базы данных выполните следующую команду в консоли:

> db_recover

Это временное решение, так как через некоторое время ошибка снова возникает.

...