jenkins 主连接失败并出现 java.nio.channels.ClosedChannelException

Mos*_*osa 5 java git jenkins jenkins-plugins ubuntu-16.04

我有一个每小时运行一次的作业,从主机(Ubuntu 上的 Jenkins)到作为从机的 Windows 10 机器,30-40% 的时间作业会失败并出现以下错误。我需要一些帮助从哪里开始寻找或者可能的解决方案是什么。

\n

Master和Slave都有相同的Java版本“1.8.0_151”

\n
   FATAL: java.nio.channels.ClosedChannelException\n   java.nio.channels.ClosedChannelException\n   Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from p578c1cb8.dip0.t-ipconnect.de/67.110.18.114:55940\n    at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1693)\n        at hudson.remoting.Request.call(Request.java:192)\n        at hudson.remoting.Channel.call(Channel.java:907)\n        at hudson.FilePath.act(FilePath.java:986)\n        at hudson.FilePath.act(FilePath.java:975)\n        at hudson.FilePath.mkdirs(FilePath.java:1158)\n        at hudson.model.AbstractProject.checkout(AbstractProject.java:1200)\n        at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)\n        at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)\n        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)\n        at hudson.model.Run.execute(Run.java:1724)\n        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)\n        at hudson.model.ResourceController.execute(ResourceController.java:97)\n        at hudson.model.Executor.run(Executor.java:421)\nCaused: hudson.remoting.RequestAbortedException\n    at hudson.remoting.Request.abort(Request.java:329)\n    at hudson.remoting.Channel.terminate(Channel.java:992)\n    at org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.onReadClosed(ChannelApplicationLayer.java:208)\n    at org.jenkinsci.remoting.protocol.ApplicationLayer.onRecvClosed(ApplicationLayer.java:222)\n    at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.onRecvClosed(ProtocolStack.java:832)\n    at org.jenkinsci.remoting.protocol.FilterLayer.onRecvClosed(FilterLayer.java:287)\n    at org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.onRecvClosed(SSLEngineFilterLayer.java:181)\n    at org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.switchToNoSecure(SSLEngineFilterLayer.java:283)\n    at org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processWrite(SSLEngineFilterLayer.java:503)\n    at org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processQueuedWrites(SSLEngineFilterLayer.java:248)\n    at org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doSend(SSLEngineFilterLayer.java:200)\n    at org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doCloseSend(SSLEngineFilterLayer.java:213)\n    at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.doCloseSend(ProtocolStack.java:800)\n    at org.jenkinsci.remoting.protocol.ApplicationLayer.doCloseWrite(ApplicationLayer.java:173)\n    at org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer$ByteBufferCommandTransport.closeWrite(ChannelApplicationLayer.java:311)\n    at hudson.remoting.Channel.close(Channel.java:1405)\n    at hudson.remoting.Channel.close(Channel.java:1358)\n    at hudson.slaves.SlaveComputer.closeChannel(SlaveComputer.java:737)\n    at hudson.slaves.SlaveComputer.access$800(SlaveComputer.java:96)\n    at hudson.slaves.SlaveComputer$3.run(SlaveComputer.java:655)\n    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:266)\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n    at java.lang.Thread.run(Thread.java:748)\nERROR: Step \xe2\x80\x98Publish Robot Framework test results\xe2\x80\x99 failed: no workspace for T_REG #117\nERROR: Step \xe2\x80\x98E-mail Notification\xe2\x80\x99 failed: no workspace for T_REG #117\nEmail was triggered for: Failure - Any\nSending email for trigger: Failure - Any\nERROR: Error: No workspace found!\nSending email to: tw.aa@gmail.com\nFinished: FAILURE\n
Run Code Online (Sandbox Code Playgroud)\n

Phi*_*lly -1

看来您在虚拟从属设备上使用秘密凭据时可能遇到问题。

这里

...最好的方法是创建一个 git 客户端身份验证令牌类,它使用 AuthenticationTokens.convert() 将特定凭据(用户名/密码或 ssh 私钥)映射到 git 客户端,然后 git 客户端身份验证令牌将被发送过来从主站到代理的线路,而不是通过线路发送 Secret。

也许尝试使用凭证插件

我还建议您从代码片段中删除您的电子邮件