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

时间:2018-01-19 13:34:49

标签: java git jenkins jenkins-plugins ubuntu-16.04

我每小时都有一个Job,从一个Master(Jenkins on Ubuntu)到windows-10 machine as slave,30-40%的时间作业失败并出现以下错误。我需要一些帮助,从哪里开始寻找或者可能的解决方案。

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



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




2 个答案:

答案 0 :(得分:0)

看起来您在虚拟从站上使用机密凭据时可能会遇到问题。

来自Here

  

...最佳路径是创建一个git客户端身份验证令牌类,它使用AuthenticationTokens.convert()将特定凭据(用户名/密码或ssh私钥)映射到git客户端,然后该git客户端身份验证令牌将通过电线从主人发送给代理人,而不是通过电报发送秘密。

也许尝试使用credential plugin

我也建议您从摘录中删除您的电子邮件

答案 1 :(得分:0)

这可能是由于this bug中所述的内存错误