Ошибка сегментации при запуске jvm с использованием jpype
Я пытаюсь использовать Java Sutime в моем коде Python. Код работал нормально до вчерашнего дня, но теперь заканчивается ошибкой сегментации. Проблема, кажется, исходит от
jpype.startJVM(getDefaultJVMPath())
Эта функция заканчивается ошибкой сегментации. DefaultJVMPath - это
'/Usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so'
Я попытался удалить, а затем установить Java и Jpype. Код работает в виртуальной коробке с меньшим объемом памяти, поэтому проблема, похоже, не в недостатке памяти. У кого-нибудь есть идеи? Любая помощь приветствуется. Спасибо!
>>> import jpype
>>> jpype.isJVMStarted()
0
>>> jpype.startJVM(jpype.getDefaultJVMPath())
Segmentation fault
deepthi@deepthi:~$
1 ответ
linux-image-3.13.0-121-generic и linux-image-4.4.0-81-generic содержат исправление для уязвимости Stack Clash.
Будьте осторожны с обновлениями ядра, которые исправляют эту уязвимость. Текущий патч ломает многие java (sun/oracle и openjdk) приложения. См. Ошибка № 1699772: регрессия linux-image-4.4.0-81-generic, linux-image-3.13.0-121-generic: сбой многих приложений пользовательского пространства. Решением является временная перезагрузка системы со старым ядром (linux-image-3.13.0-119-generic в Trusty / linux-image-4.4.0-78-generic в Xenial).
Разработчики ядра Ubuntu подготовят новый патч через несколько дней.
ОБНОВЛЕНИЕ: последние обновления (по крайней мере, image-4.4.0-83-generic, linux-image-4.8.0-58-generic, linux-image-4.10.0-26-generic) исправляют эту уязвимость и проблемы с пользовательским пространством программы.