我刚刚将詹金斯从2.39升级到2.57。升级后,Jenkins无法再与我的SSH构建节点通信。我收到以下错误:

<===[JENKINS REMOTING CAPACITY]===>channel started
Slave JVM has not reported exit code. Is it still running?
[04/28/17 01:29:32] Launch failed - cleaning up connection
[04/28/17 01:29:32] [SSH] Connection closed.
ERROR: Connection terminated
java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2335)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2804)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:802)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
    at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:48)
    at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:34)
    at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:59)
Caused: java.io.IOException: Unexpected termination of the channel
    at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:73)


基于谷歌搜索'从JVM尚未报告退出代码。似乎是Java版本不匹配(JENKINS-30561,JENKINS-29120),但是我可以确认我的构建节点使用的是Java 1.7:

$ java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)


是否有人想法可能是什么原因造成的?可根据要求提供更多信息。

#1 楼

我通过这个StackOverflow问题发现了这个问题,该问题使我指向JENKINS-27624,这表明现在需要Java8。

更新:今天早上,我在所有节点上升级了Java,它们已经启动并且可以正常工作。