詹金斯奴隶使用jnlp连接不稳定

时间:2018-08-15 17:57:08

标签: jenkins jnlp jenkins-slave

我有2个Windows服务器(主服务器和从属服务器)的小型Jenkins环境。 我想将Slave配置为Windows服务。

"java -jar agent.jar -workDir "C:\JENKINS""命令运行并运行从属设备时。来自浏览器的启动代理开始启动,并一遍又一遍地从连接循环到终止。 在詹金斯上,我看到了错误:

  

Ping响应时间太长或超时。

     

连接断开

和:

  

java.nio.channels.ClosedChannelException在   org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.onReadClosed(ChannelApplicationLayer.java:209)     在   org.jenkinsci.remoting.protocol.ApplicationLayer.onRecvClosed(ApplicationLayer.java:222)     在   org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.onRecvClosed(ProtocolStack.java:832)     在   org.jenkinsci.remoting.protocol.FilterLayer.onRecvClosed(FilterLayer.java:287)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.onRecvClosed(SSLEngineFilterLayer.java:181)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.switchToNoSecure(SSLEngineFilterLayer.java:283)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processWrite(SSLEngineFilterLayer.java:503)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processQueuedWrites(SSLEngineFilterLayer.java:248)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doSend(SSLEngineFilterLayer.java:200)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doCloseSend(SSLEngineFilterLayer.java:213)     在   org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.doCloseSend(ProtocolStack.java:800)     在   org.jenkinsci.remoting.protocol.ApplicationLayer.doCloseWrite(ApplicationLayer.java:173)     在   org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer $ ByteBufferCommandTransport.closeWrite(ChannelApplicationLayer.java:314)     在hudson.remoting.Channel.close(Channel.java:1450)在   hudson.remoting.Channel.close(Channel.java:1403)在   jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:173)     在   org.jenkinsci.remoting.engine.JnlpConnectionState $ 4.invoke(JnlpConnectionState.java:421)     在   org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312)     在   org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418)     在   org.jenkinsci.remoting.engine.JnlpProtocol4Handler $ Handler $ 1.run(JnlpProtocol4Handler.java:334)     在   jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28)     在   jenkins.security.ImpersonatingExecutorService $ 1.run(ImpersonatingExecutorService.java:59)     在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)     在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)     at java.lang.Thread.run(Unknown Source)将代理连接到Jenkins   这些方式中:

在日志文件中,我看到了:

  

从SERVERMACH / 10.10.8.6连接的JNLP代理远程版本:3.20   这是Windows代理另外:
  hudson.remoting.Channel $ CallSiteStackTrace:远程调用   来自SERVERMACH / 10.10.8.6:63232的JNLP4-connect连接   hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741)         在   hudson.remoting.UserRequest $ ExceptionResponse.retrieve(UserRequest.java:357)         在hudson.remoting.Channel.call(Channel.java:955)处   hudson.FilePath.act(FilePath.java:1131)位于   org.jenkinsci.plugins.envinject.EnvInjectComputerListener.onOnline(EnvInjectComputerListener.java:158)         在hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:620)         在   jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:168)         在   org.jenkinsci.remoting.engine.JnlpConnectionState $ 4.invoke(JnlpConnectionState.java:421)         在   org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312)         在   org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418)         在   org.jenkinsci.remoting.engine.JnlpProtocol4Handler $ Handler $ 1.run(JnlpProtocol4Handler.java:334)         在   jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28)         在   jenkins.security.ImpersonatingExecutorService $ 1.run(ImpersonatingExecutorService.java:59)         在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)         在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知   来源)hudson.remoting.ProxyException:   java.lang.reflect.InaccessibleObjectException:无法创建字段   私有int java.lang.reflect.Field.modifiers可访问:模块   java.base不会“打开java.lang.reflect”到未命名的模块   @ 7d9a7b14位于   java.lang.reflect.AccessibleObject.checkCanSetAccessible(未知   来源)   java.lang.reflect.AccessibleObject.checkCanSetAccessible(未知   源),位于java.lang.reflect.Field.checkCanSetAccessible(未知   源)位于java.lang.reflect.Field.setAccessible(未知源)位于   org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.call(EnvInjectMasterEnvVarsSetter.java:36)     在   org.jenkinsci.plugins.envinject.service.EnvInjectMasterEnvVarsSetter.call(EnvInjectMasterEnvVarsSetter.java:16)     在hudson.remoting.UserRequest.perform(UserRequest.java:212)处   hudson.remoting.UserRequest.perform(UserRequest.java:54)在   hudson.remoting.Request $ 2.run(Request.java:369)在   hudson.remoting.InterceptingExecutorService $ 1.call(InterceptingExecutorService.java:72)     在java.util.concurrent.FutureTask.run(未知来源)   java.util.concurrent.ThreadPoolExecutor.runWorker(未知源),位于   java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知源)   hudson.remoting.Engine $ 1.lambda $ newThread $ 0(Engine.java:93)在   java.lang.Thread.run(未知源)错误:连接终止   java.nio.channels.ClosedChannelException在   org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer.onReadClosed(ChannelApplicationLayer.java:209)     在   org.jenkinsci.remoting.protocol.ApplicationLayer.onRecvClosed(ApplicationLayer.java:222)     在   org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.onRecvClosed(ProtocolStack.java:832)     在   org.jenkinsci.remoting.protocol.FilterLayer.onRecvClosed(FilterLayer.java:287)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.onRecvClosed(SSLEngineFilterLayer.java:181)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.switchToNoSecure(SSLEngineFilterLayer.java:283)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processWrite(SSLEngineFilterLayer.java:503)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.processQueuedWrites(SSLEngineFilterLayer.java:248)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doSend(SSLEngineFilterLayer.java:200)     在   org.jenkinsci.remoting.protocol.impl.SSLEngineFilterLayer.doCloseSend(SSLEngineFilterLayer.java:213)     在   org.jenkinsci.remoting.protocol.ProtocolStack $ Ptr.doCloseSend(ProtocolStack.java:800)     在   org.jenkinsci.remoting.protocol.ApplicationLayer.doCloseWrite(ApplicationLayer.java:173)     在   org.jenkinsci.remoting.protocol.impl.ChannelApplicationLayer $ ByteBufferCommandTransport.closeWrite(ChannelApplicationLayer.java:314)     在hudson.remoting.Channel.close(Channel.java:1450)在   hudson.remoting.Channel.close(Channel.java:1403)在   jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:173)     在   org.jenkinsci.remoting.engine.JnlpConnectionState $ 4.invoke(JnlpConnectionState.java:421)     在   org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312)     在   org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418)     在   org.jenkinsci.remoting.engine.JnlpProtocol4Handler $ Handler $ 1.run(JnlpProtocol4Handler.java:334)     在   jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28)     在   jenkins.security.ImpersonatingExecutorService $ 1.run(ImpersonatingExecutorService.java:59)     在java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)     在java.util.concurrent.ThreadPoolExecutor $ Worker.run(未知来源)     在java.lang.Thread.run(未知来源)

经过测试:Java版本,向JVM配置,网络连接和JNLP端口添加了参数。 任何方向都很棒! 谢谢 !

0 个答案:

没有答案