Сбой Redhawk с ошибкой Java - Убит по сигналу 6, SIGABRT

Centos 6,6

Redhawk 1.10

Я могу выполнить серию операций (запрограммировать IP-адрес USRP) в Redhawk, которые неоднократно вызывают сбой программы со следующей ошибкой:

Источник: java-1.7.0-openjdk

Проблема: Процесс /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71.x86_64/jre/bin/java был прерван по сигналу 6 (SIGABRT)

Есть идеи, как это предотвратить?

Кроме того, я очень плохо знаком с Redhawk и Linux в целом, поэтому, пожалуйста, ELI5.

2 ответа

На кого-то способ умнее меня на эту тему:

Это проблема, которая только что появилась в выпуске CentOS6.6, поскольку он использует более новую версию gtk2, чем CentOS6.5. Eclipse обнаруживает это и ошибочно полагает, что может использовать графический API cairo, который либо недоступен, либо отсутствует в ожидаемой версии. На самом деле это ошибка в версии Eclipse, используемой в IDE REDHAWK серии v1.10 и v1.9. Информацию о проблеме можно найти на этом форуме затмения. С тех пор Eclipse устранил проблему в своей последней базе кода.

Самым простым исправлением для пользователей 1.10 и 1.9 является применение исправления, упомянутого в сообщении на форуме. Перейдите в каталог, в котором находится исполняемый файл eclipse (исполняемый файл REDHAWK IDE), и должен быть файл конфигурации с именем "eclipse.ini". Добавьте следующий параметр в список объявленных опций:

-Dorg.eclipse.swt.internal.gtk.cairoGraphics = ложь

Это отключит использование графики Каира, которая не использовалась в первую очередь.

Я обнаружил, что эта ошибка произошла, потому что я выполнял удаленную отладку процесса, который хотел создать два отдельных экземпляра JVM. Тот, который выполнил тестовый бегун, и тот, который выполнил реальный тест. Если вы запустили программу с помощью:

export _JAVA_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7002"

Оба экземпляра пытаются использовать порт 7002, и прерывание сигнала появляется, потому что 7002 используется для второго экземпляра.

Вместо этого вы можете использовать:

export _JAVA_OPTIONS="agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=7002"

Если для параметра suspend установить значение yes, вы запретите одновременную работу экземпляров. Хотя вы должны не забыть подключить удаленный отладчик дважды, чтобы заставить работать отдельные экземпляры.

Другие вопросы по тегам