在过去一个月左右,我们的两个Windows奴隶(通过JNLP连接)已开始频繁断开连接。我很确定我们的网络方面发生了一些变化,因为这只会影响一个地理位置(以及该位置的所有从属设备),并且我们开始接收节点离线电子邮件时有一段时间,但到目前为止我们的基础架构团队已经画了一个空白。
我在奴隶日志中看到的错误是:
JNLP agent connected from xx
Slave.jar version: 3.4.1
This is a Windows agent
Agent successfully connected and online
ERROR: Connection terminated
[8mha:////4EVWKVufSpoBsjG/AK97kvCQst6o1LLM9fjogkB0XVcIAAAAWB+LCAAAAAAAAP9b85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=[0mjava.nio.channels.ClosedChannelException
at org.jenkinsci.remoting.protocol.NetworkLayer.onRecvClosed(NetworkLayer.java:154)
at org.jenkinsci.remoting.protocol.impl.NIONetworkLayer.ready(NIONetworkLayer.java:179)
at org.jenkinsci.remoting.protocol.IOHub$OnReady.run(IOHub.java:721)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我花了好几个小时试图找出问题所在。我不确定我可以配置什么记录器来进一步尝试和诊断,所以如果有人可以帮助我那里,我将不胜感激?或者确实是任何其他诊断出错的方法。
我们正在运行最新的LTS版本2.46.1(但它在较旧的LTS版本中展示了这个问题,我升级了以查看最近的远程更改是否有帮助,不幸的是他们没有。)
我怀疑问题可能在主方面,因为我可以从同一台从机连接到另一台主机,但看不到断开连接。
任何帮助都会受到赞赏,因为我完全没有想法。
谢谢,Stu答案 0 :(得分:1)
我遇到了与AWS ECS slave代理类似的问题,因为this article中有一些失败的构建建议有帮助。
尝试将-Dhudson.remoting.Launcher.pingIntervalSec=-1
添加到从属JVM选项并在主控制台中执行以下操作
Jenkins.instance.injector.getInstance(hudson.slaves.ChannelPinger.class).@pingIntervalSeconds = -1
Jenkins.instance.injector.getInstance(hudson.slaves.ChannelPinger.class).@pingTimeoutSeconds = -1
答案 1 :(得分:0)
可能是证书错误。
打开jenkins-slave.xml文件,添加参数-noCertificateCheck
<arguments>-Xrs -jar "%BASE%\slave.jar" -jnlpUrl <master jenkins server url/slave-agent.jnlp -secret <secret> -noCertificateCheck</arguments>
重新启动该服务,并检查问题是否仍然存在。