我尝试启动从属服务器时,所有 Linux 服务器上都出现此错误。版本是 Jenkins 版本 1.532.1。当我使用 Jenkins 版本 1.509.4 进行其他安装时,没有遇到此问题。
我在网上读了很多关于这个问题的帖子,但还是不知道该怎么解决。现在我几乎想删除这个安装并安装旧版本 1.509.4。
有人能给出一些关于如何调试这个问题的建议吗?
jenkins.log:
Dec 20, 2013 9:38:24 AM jenkins.slaves.JnlpSlaveAgentProtocol$Handler$1 onClosed
WARNING: Channel reader thread: trmsrv43 for + trmsrv43 terminated
java.net.SocketException: Socket closed
bash-3.00$ java -jar slave.jar -jnlpUrl htttp://name:8080/computer/trmsrv43/slave-agent.jnlp
20-Dec-2013 9:37:47 AM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
20-Dec-2013 9:37:47 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [htttp://name:8080/, htttp://name:8080/]
20-Dec-2013 9:38:02 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to name:45606
20-Dec-2013 9:38:02 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
20-Dec-2013 9:38:02 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
20-Dec-2013 9:38:03 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel channel
java.io.IOException: Unexpected termination of the channel
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
Caused by: java.io.EOFException
hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:48)
20-Dec-2013 9:38:03 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated
20-Dec-2013 9:38:03 AM hudson.remoting.JarCacheSupport$1 run
WARNING: Failed to resolve a jar e42831c9e9138e2761253da84a096665
hudson.remoting.RemotingSystemException: hudson.remoting.ChannelClosedException: channel is already closed
caused by: hudson.remoting.ChannelClosedException: channel is already closed
at hudson.remoting.Channel.send(Channel.java:516)
at hudson.remoting.Request.call(Request.java:129)
at hudson.remoting.Channel.call(Channel.java:714)
at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:167)
... 10 more
Caused by: java.io.IOException: Unexpected termination of the channel
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [htttp://name:8080/]
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to name:45606
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
20-Dec-2013 9:38:13 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel channel
java.io.IOException: Unexpected termination of the channel
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
20-Dec-2013 9:38:13 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [htttp://name:8080/]
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to name:45606
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
20-Dec-2013 9:38:23 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected
20-Dec-2013 9:38:24 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel channel
java.io.IOException: Unexpected termination of the channel
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:50)
20-Dec-2013 9:38:24 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Terminated
答案1
我们在更新到 Jenkins 2.60.1 时遇到了这个问题。该版本是第一个需要 Java 8 的 LTS 版本,我们确保更新主服务器以使用 Java 8。不幸的是,从服务器无法启动,导致出现您在标题中报告的错误。
问题原来是从属节点开始使用 Java 7,我们必须使用节点配置页面上的“高级”按钮来确保从属节点使用了正确的 Java 路径