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

时间:2013-11-22 03:12:34

标签: jenkins

Summary : 

我们看到以下例外情况 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) 

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

我们收到此错误有两个原因:

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

  2. 由于远程节点上的一个不明原因,java代理停止工作。 解决方案:重启java代理。很简单......但如果您不知道如何重新启动它可能不会!我发现一种简单的方法是在节点配置上更改超时(连接超时为秒)。保存新值时,您将实际修复java代理!