tutorial travis significado logo jenkins

travis - jenkins tutorial



Trabajos esclavos de Jenkins fallando en "terminaciĆ³n inesperada del canal" (10)

Desde 1.520, Jenkins requiere Java 6 o posterior, una de las posibilidades de este error es que no tienes java 6 o posterior en esclavo / remoto. La resolución es actualizar su máquina remota con java 6 o posterior o establecer la variable de entorno correcta que SSH usa mientras inicia sesión en la máquina esclava.

Actualmente veo un conjunto de errores en mis compilaciones.

¿Es este comportamiento esperado si pierdes a Jenkins (por ejemplo, a un choque de caja o a un kill -9)?

¿O está pasando algo peor (como una mala conexión de red)?

La pila y el error es:

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)


En CentOS Linux 7, descubrí que el esclavo Jenkins no funciona con OpenJDK. Intenté Java 7 y 8. Requiere Oracle Java.

Entonces, si está en Linux, instale Oracle Java y configure la ruta para que apunte a él. Puede hacerlo de varias maneras, por ejemplo:

  • Establezca $JAVA_HOME para el usuario con el que está iniciando el esclavo y agréguelo a $PATH .
  • Use update-alternatives para establecer el java predeterminado.
  • Establezca JavaPath , en la configuración Advanced del nodo en Jenkins.

La versión de Java tiene que ser 1.6 (más reciente) o más nueva para Jenkins 1.531 que estoy usando.

Para uno de mis nodos esclavos descubrí que tenía que establecer la ruta de Java en el botón ''Método de lanzamiento'' Avanzado ''JavaPath'' para el nodo antes de que esto funcionara correctamente. El problema era que el nodo seguía usando una versión anterior de Java que no pude actualizar.


Lo resolví con un simple reinicio del servidor maestro de Jenkins.


Otra cosa donde puedes ver este error (que en realidad lleva a esto) es la falta de núcleos de memoria / CPU para compilación. Pasé un tiempo probándolo y resolví este problema en nuestro sitio al aumentar el tamaño del almacenamiento dinámico de Java (y agregar más memoria a las máquinas), aumentando el número de núcleos (por lo que una máquina tiene al menos 4G de RAM con dos núcleos disponibles con una ranura de compilación), y también hacer algunos ajustes (si está en Linux) número de descriptores de archivos abiertos y procesos que se pueden ejecutar al mismo tiempo.


Para mí, la configuración del nodo tenía una "raíz de FS remota" equivocada. Por lo tanto, verifique si todos los parámetros de configuración en el maestro para este nodo esclavo son correctos. Jenkins no se queja, pero termina la conexión.

Luché mucho antes de determinar si era la configuración del nodo. Al menos el mensaje de error en el maestro debe ser más explícito o informativo.


Sé que esta pregunta es un poco antigua, pero me encontré con este problema el otro día.

Para mí, el problema estaba ocurriendo durante la instalación del JDK. La instalación falló porque la configuración de seguridad de Windows estaba configurada, por lo que apareció el cuadro de notificación que dice: "Debe dar permiso para esta operación", lo que provocó que la instalación fallara.

Cambié la configuración de las notificaciones a "No avisar" y resolvió este problema.



Tuve problemas similares con Jenkins Slaves cuando finalicé la actualización de Jenkins a la versión 2.9.2 desde 2.1.5.

Todos los problemas relacionados con la actualización, como la terminación inesperada de Slave, se corrigieron al instalar la versión de Java 8 en Centos.

yum install java-1.8.0-openjdk-devel


Verás ese error si el maestro Jenkins pierde la conectividad con el esclavo . Podría deberse a cualquiera de los tres problemas enumerados anteriormente:

  • Manualmente matando el proceso esclavo

  • El servidor esclavo no está disponible

  • Un problema de red entre el maestro y el esclavo