Jenkins问题:hudson.remoting.ChannelClosedException:频道已经关闭

Kis*_*eRP 8 jenkins

Summary : 
Run Code Online (Sandbox Code Playgroud)

我们看到下面的异常hudson.remoting.ChannelClosedException:通道已经关闭引起:java.net.SocketException:连接重置有关如何修复它的任何建议?下面的完整例外文本

[21-11-2013 14:29:54] FATAL: channel is already closed 
[21-11-2013 14:29:54] hudson.remoting.ChannelClosedException: channel is already closed 
[21-11-2013 14:29:54] at hudson.remoting.Channel.send(Channel.java:516) 
[21-11-2013 14:29:54] at hudson.remoting.Request.call(Request.java:129) 
[21-11-2013 14:29:54] at hudson.remoting.Channel.call(Channel.java:714) 
[21-11-2013 14:29:54] at hudson.Launcher$RemoteLauncher.kill(Launcher.java:887) 
[21-11-2013 14:29:54] at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:609) 
[21-11-2013 14:29:54] at com.tikal.jenkins.plugins.multijob.MultiJobBuild$MultiJobRunnerImpl.run(MultiJobBuild.java:67) 
[21-11-2013 14:29:54] at hudson.model.Run.execute(Run.java:1603) 
[21-11-2013 14:29:54] at hudson.model.Run.run(Run.java:1549) 
[21-11-2013 14:29:54] at com.tikal.jenkins.plugins.multijob.MultiJobBuild.run(MultiJobBuild.java:60) 
[21-11-2013 14:29:54] at hudson.model.ResourceController.execute(ResourceController.java:88) 
[21-11-2013 14:29:54] at hudson.model.Executor.run(Executor.java:247) 
[21-11-2013 14:29:54] Caused by: java.net.SocketException: Connection reset 
[21-11-2013 14:29:54] at java.net.SocketInputStream.read(Unknown Source) 
[21-11-2013 14:29:54] at java.net.SocketInputStream.read(Unknown Source) 
[21-11-2013 14:29:54] at java.io.BufferedInputStream.fill(Unknown Source) 
[21-11-2013 14:29:54] at java.io.BufferedInputStream.read(Unknown Source) 
[21-11-2013 14:29:54] at hudson.remoting.FlightRecorderInputStream.read(FlightRecorderInputStream.java:77) 
[21-11-2013 14:29:54] at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source) 
[21-11-2013 14:29:54] at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source) 
[21-11-2013 14:29:54] at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) 
[21-11-2013 14:29:54] at java.io.ObjectInputStream.readObject0(Unknown Source) 
[21-11-2013 14:29:54] at java.io.ObjectInputStream.readObject(Unknown Source) 
[21-11-2013 14:29:54] at hudson.remoting.Command.readFrom(Command.java:92) 
[21-11-2013 14:29:54] at hudson.remoting.ClassicCommandTransport.read(ClassicCommandTransport.java:71) 
Run Code Online (Sandbox Code Playgroud)

pma*_*in8 5

您收到此错误的原因有两个:

  1. Jenkins 第一次尝试在远程节点上进行 SSH 时,服务器会提示用户是否要将 SHH 密钥添加到其已知密钥中。通常,在命令提示符下,您只需回答“是”并继续。但詹金斯会卡在这条线上。然后连接尝试将失败。解决方案:使用命令提示符从 jenkins 服务器手动连接到远程节点一次。然后您可以手动回答“是”。詹金斯未来的所有尝试都会起作用。

  2. java 代理因不明原因在远程节点上停止工作。解决办法:重启java代理。足够简单......但如果您不知道如何重新启动它,也许就不行了!我发现一个简单的方法是更改​​节点配置上的超时值(连接超时以秒为单位)。当保存新值时,您实际上将重新启动java代理!


23a*_*ars 4

据我所知,当构建在从属 PC 上运行并且客户端停止时,可能会出现该错误...如果不是主从问题,请参阅 jenkins 的完整日志(您可以在 Jenkins 安装目录中找到它)并查看导致问题的原因(可能是堆问题,或者我不知道导致问题的原因)。不管怎样,重启 Jenkins 就可以解决!