Подтвердить что ты не робот

Нерабочие задания Дженкинса на "Неожиданное прекращение канала"

В настоящее время я вижу множество ошибок в моих сборках.

Является ли это ожидаемым поведением, если вы потеряете Дженкинса (скажем, сбой коробки или kill -9)?

Или происходит что-то хуже (например, плохое сетевое подключение)?

Стек и ошибка:

hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:158)
        at $Proxy175.join(Unknown Source)   at
hudson.Launcher$RemoteLauncher$ProcImpl.join(Launcher.java:861)     at
hudson.Launcher$ProcStarter.join(Launcher.java:345)     at
hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:82)
        at
hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:58)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
        at
hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:703)
        at hudson.model.Build$RunnerImpl.build(Build.java:178)  at
hudson.model.Build$RunnerImpl.doRun(Build.java:139)     at
hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:473)
        at hudson.model.Run.run(Run.java:1410)  at
hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)     at
hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:238) Caused by:
hudson.remoting.RequestAbortedException: java.io.IOException:
Unexpected termination of the channel   at
hudson.remoting.Request.abort(Request.java:273)     at
hudson.remoting.Channel.terminate(Channel.java:732)     at
hudson.remoting.Channel$ReaderThread.run(Channel.java:1157) Caused by:
java.io.IOException: Unexpected termination of the channel  at
hudson.remoting.Channel$ReaderThread.run(Channel.java:1133) Caused by:
java.io.EOFException    at
java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at hudson.remoting.Channel$ReaderThread.run(Channel.java:1127)
4b9b3361

Ответ 1

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

  • Вручную убить подчиненный процесс

  • Подчиненный сервер становится недоступным

  • Сетевая проблема между ведущим и ведомым

Ответ 2

Начиная с 1.520, Jenkins требует Java 6 или новее, одна из возможностей этой ошибки состоит в том, что у вас нет java 6 или более поздней версии на slave/remote. Резолюция заключается в том, чтобы обновить удаленный компьютер с помощью java 6 или более поздней версии или установить правильную переменную среды, которую SSH использует при входе в подчиненную машину.

Ответ 3

Я разрешил его простым перезапуском главного сервера Jenkins.

Ответ 4

Для меня конфигурация node имела неправильный "Remote FS Root". Поэтому проверьте правильность всех параметров конфигурации на главном устройстве для этого ведомого устройства node. Дженкинс не жалуется, но прекращает соединение.

Я много боролся, прежде чем определить, что это была конфигурация node. По крайней мере, сообщение об ошибке на главном должно быть более явным или информативным.

Ответ 5

Версия java должна быть 1.6 (последняя) или новее для Jenkins 1.531, которую я использую.

Для одного из моих подчиненных узлов я обнаружил, что мне пришлось установить путь Java в методе "Launch" "Расширенная кнопка" JavaPath "для node, прежде чем это будет работать правильно. Проблема заключалась в том, что node продолжал использовать старую версию Java, которую я не смог обновить.

Ответ 6

Другое, где вы можете увидеть эту ошибку (что на самом деле приводит к этому), - нехватка ядер памяти/процессора для сборки. Я потратил некоторое время на его тестирование и разрешил эту проблему на нашем сайте, увеличив размер кучи java (а также увеличив количество памяти на машинах), увеличив количество ядер (так что у одной машины есть как минимум 4 ГБ ОЗУ с двумя ядрами, доступными с одним построить слот), а также выполнить некоторую настройку (если вы используете Linux) количество открытых файловых дескрипторов и процессов, которые могут запускаться одновременно.

Ответ 7

Я знаю, что этот вопрос старый, но на днях я столкнулся с этой проблемой.

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

Я изменил настройки уведомлений на "Никогда не уведомлять" и решил эту проблему.

Ответ 8

В CentOS Linux 7 я обнаружил, что подчиненный Jenkins не работает с OpenJDK. Я пробовал Java 7 и 8. Он требует Oracle Java.

Итак, если вы работаете в Linux, установите Oracle Java и укажите путь к нему. Вы можете сделать это несколькими способами, например:

  • Установите $JAVA_HOME для пользователя, с которого вы запускаете подчиненный, и добавьте его в $PATH.
  • Используйте update-alternatives для установки значения по умолчанию java.
  • Установите JavaPath в настройках node Advanced в Jenkins.

Ответ 9

У меня были подобные проблемы с Jenkins Slaves, когда я обновил Jenkins до версии 2.9.2 от версии 2.1.5.

Все проблемы, связанные с обновлением, такие как неожиданное завершение ведомого, исправлены путем установки версии Java 8 на Centos.

yum install java-1.8.0-openjdk-devel