ValueError: дескриптор файла вне диапазона в select () в py2neo - PullRequest
0 голосов
/ 21 апреля 2020

После одного из последних обновлений py2neo мы видим много случайно появляющихся ошибок, говорящих о ValueError: дескриптор файла вне диапазона в select () мы используем py2neo для подключения к удаленному экземпляру neo4j.

client_identifier = request.args.get('tribes_client_id')
graph_obj = generic_helpers.get_graph_object(client_identifier) # <- returns py2neo instance
graph_transaction = graph_obj.begin() # <- this is the line causing the exception

Ниже приведена трассировка стека возбуждаемого исключения

Трассировка (последний вызов был последним): Файл "/ env / lib / python3 .7 / site-packages / flask / app.py ", строка 2447, в ответе wsgi_app = self.full_dispatch_request () Файл" /env/lib/python3.7/site-packages/flask/app. py ", строка 1952, в full_dispatch_request , tb) Файл "/env/lib/python3.7/site-packages/flask/_compat.py", строка 39, в файле повышения значения рейза "/env/lib/python3.7/site-packages /flask/app.py ", строка 1950, в файле full_dispatch_request rv = self.dispatch_request ()" /env/lib/python3.7/site-packages/flask/app.py ", строка 1936 , в dispatch_request вернуть файл self.view_functionsrule.endpoint "/srv/neo4j_maintenance_routes.py", строка 116, в файле get_words_list_for_lookup graph_transaction = graph_obj.begin () "/env/lib/python3.7/site-packages/py2o database.py ", строка 353, в начале файла возврата транзакции (self, autocommit)" /env/lib/python3.7/site-packages/py2neo/database.py ", строка 781, в __init__ self.transaction = Файл self.connector.begin () "/env/lib/python3.7/site-packages/py2neo/internal/connectors.py", строка 297, в файле begin tx = self.pool.acquire () "/ env / lib / python3 .7 / site-packages / neobolt / direct.py ", строка 715, в запросе на получение и возврат файла self.acquire_direct (self.address)" "/env/lib/python3.7/site- packages / neobolt / direct.py ", строка 608, в подключении acqu_direct = self.connector (адрес, error_handler = self.connection_error_handler) Файл" /env/lib/python3.7/site-packages/py2neo/internal/connectors .py ", строка 227, в соединителе зашифрован = cx_data [" secure "], ** kwargs) Файл" /env/lib/python3.7/site-packages/neobolt/di rect.py ", строка 972, в файле connect connect last_error" /env/lib/python3.7/site-packages/neobolt/direct.py ", строка 964, в файле connect connect = _handshake (s, address, der_encoded_server_certificate) , ** config) Файл "/env/lib/python3.7/site-packages/neobolt/direct.py", строка 898, в _handshake ready_to_read, _, _ = select ((s,), (), (), 1) ValueError: файловый дескриптор вне диапазона в select ()

py2neo -> version 4.3.0  
python -> version 3.7.3  
neo4j -> version (Enterprise 3.5.3)

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

...