【发布时间】:2017-04-13 12:21:48
【问题描述】:
Jenkins slave 在构建期间离线。我该如何解决这个问题,我在 SO 和 Jenkins 问题中看到了很多相关问题,但没有人给出解决方案。
我的配置:
Jenkins 版本 1.651.1, Zuul 版本 2.1.1.dev393,带有一个 Jenkins master(Ubuntu), 2 个从属设备(Ubuntu)每个有 16GB 的 RAM 并行运行构建。
Jenkins master、devstack 和两个 nodepool 从属都在同一个 IP 范围内。
当其中一个从属设备完成构建然后两个从属设备中的 java 进程被杀死,因此另一个从属设备下线时,我遇到了一个问题。
我通过列出从服务器中运行的进程发现了这个问题,并观察到当一个从服务器完成构建而另一个从服务器仍在运行构建时,两个从服务器中的 java 进程同时被杀死。
以前我遇到过这个问题,通过从 Open JDK 切换到 Oracle 的 JDK 解决了这个问题。现在 slaves 正在使用 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
【问题讨论】:
-
您查看系统消息日志了吗?尝试查看this issue and workaround 是否与您的案例相关。
-
我们经常在主人很忙的时候看到这个。然后我们为它分配更多的“CPU”。在那之后(到目前为止2个月)没有看到它。
-
你是如何运行master的?码头工人?主节点的资源分配是多少?
标签: java jenkins build openstack