Я испытываю Segmentation fault
при импорте модуля graph-tool
в Python. Я провел несколько тестов:
import graph_tool
не вызывает никаких проблем.
>>> import graph_tool as gt
>>> gt.__version__
'2.29 (commit d4154c6c, Tue Aug 27 13:21:10 2019 +0000)'
from graph_tool.all import *
приводит к
Segmentation fault
.
После выполнения from graph_tool.draw import graph_draw
я получаю ту же ошибку (и стек ошибок), что и с from graph_tool.all import *
.
Используя faulthandler
я получил следующий вывод:
>>> from graph_tool.all import *
Fatal Python error: Segmentation fault
Current thread 0x00007fcc6e68d740 (most recent call first):
File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 1043 in create_module
File "<frozen importlib._bootstrap>", line 583 in module_from_spec
File "<frozen importlib._bootstrap>", line 670 in _load_unlocked
File "<frozen importlib._bootstrap>", line 967 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 983 in _find_and_load
File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1035 in _handle_fromlist
File "<string>", line 1 in <module>
File "/opt/anaconda3/lib/python3.7/site-packages/graph_tool/dl_import.py", line 61 in dl_import
File "/opt/anaconda3/lib/python3.7/site-packages/graph_tool/draw/cairo_draw.py", line 89 in <module>
File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 728 in exec_module
File "<frozen importlib._bootstrap>", line 677 in _load_unlocked
File "<frozen importlib._bootstrap>", line 967 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 983 in _find_and_load
File "/opt/anaconda3/lib/python3.7/site-packages/graph_tool/draw/__init__.py", line 880 in <module>
File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 728 in exec_module
File "<frozen importlib._bootstrap>", line 677 in _load_unlocked
File "<frozen importlib._bootstrap>", line 967 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 983 in _find_and_load
File "/opt/anaconda3/lib/python3.7/site-packages/graph_tool/all.py", line 35 in <module>
File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
File "<frozen importlib._bootstrap_external>", line 728 in exec_module
File "<frozen importlib._bootstrap>", line 677 in _load_unlocked
File "<frozen importlib._bootstrap>", line 967 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 983 in _find_and_load
File "<stdin>", line 1 in <module>
ОС:
Static hostname: XXXXXXXXXXX
Icon name: computer-vm
Chassis: vm
Machine ID: XXXXXXXXXXX
Boot ID: XXXXXXXXXXX
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1062.4.3.el7.x86_64
Architecture: x86-64
Python от Anaconda:
(base) -bash-4.2$ python --version
Python 3.7.3
(base) -bash-4.2$ conda --version
conda 4.8.0
One Я заметил, что проблемный импорт c (см. № 2) работает на другом сервере, имеющем следующую конфигурацию:
Python 3.7.6
graph_tool
такая же, как и в случае, который я пытаюсь решить.
Отличительной особенностью является количество ожидающих сигналов в ulimit -a
(другие значения, возвращаемые командой, идентичны). Сервер, на котором работает импорт, имеет 256898 ожидающих сигналов, а сервер, на котором возникла проблема, имеет 127882. Я попытался увеличить нижнее значение, но не смог, так как pending signals: cannot modify limit: Operation not permitted.
Обратите внимание, что я отправил то же самое проблема как проблема в graph-tool
GitLab repo . Я решил задать вопрос по StackOverflow, потому что аудитория здесь может быть больше, чем в очереди на выпуск репозитория.