jenkins奴隶在建设期间离线.我如何解决这个问题,我在SO和Jenkins问题上看到很多相关问题,但没有人解决.
我的配置:
jenkins版1.651.1,
Zuul版本2.1.1.dev393与一个jenkins大师(Ubuntu),
2个奴隶(Ubuntu)每个都有16GB的内存
并行运行构建.
Jenkins的master,devstack和两个nodepool从站都在同一个IP范围内.
当一个从机完成其构建时,我正面临着一个问题,那么这两个从机中的java进程就被杀死了,所以其他的从机脱机.
我发现这个问题通过列出在从站中运行的进程,并观察到,当一个从站完成其构建并且另一个从站仍在运行构建时,java进程在两个从站中同时被同时杀死.
以前我有这个问题,这是通过从Open JDK切换到Oracle的JDK来解决的.现在的奴隶正在使用oracle java 1.8.0_111,但现在我们也和Oracle-java8一样的问题
构建日志:
01:42:07 Slave went offline during the build 01:42:07 ERROR: Connection was broken: java.io.IOException: Unexpected termination of the channel 01:42:07 at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50) 01:42:07 Caused by: java.io.EOFException 01:42:07 at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2351) 01:42:07 at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2820) 01:42:07 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804) 01:42:07 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:302) 01:42:07 at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48) 01:42:07 at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read( AbstractSynchronousByteArrayCommandTransport.java:34) 01:42:07 at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48) 01:42:07 01:42:07 Build step 'Execute shell' marked build as failure
解决方法
奴隶离线,因为
>运行在其上的作业正在消耗比它拥有更多的RAM
或没有内存.
– 如果是这种情况,尝试在从站中拥有较少的执行程序数或在节点中拥有更多的cpu / RAM.
>从机清理进程可能正在运行,或者某些孤立进程可能会在后面运行,这导致连接中断.
– 清理清理进程,或者杀死孤立进程,这是消耗内存的.
>主机和从机之间的SSH键可能会发生变化.
– 再次通过scp将ssh键发送到从站,需要再次触摸.
请尝试一次,并阅读以下文章以获得更多帮助.
> https://wiki.jenkins-ci.org/display/JENKINS/Remoting+issue
> Jenkins slave jobs failing on “Unexpected termination of channel”