与Windows Azure上的Jenkins从属连接问题

我在Windows Azure虚拟机上建立了一个Jenkins从节点。 在该节点上构建项目时,项目会平稳运行大约20-30分钟,之后连接将被丢弃。 我一直在节点虚拟机上,因为连接被中断,看起来它正在丢失/重置与Jenkins Master(也是Azure虚拟机)的连接。 有没有人有类似的问题,并能解决它? 堆栈跟踪如下。 任何帮助,将不胜感激。

进度:| =====================致命错误:hudson.remoting.RequestAbortedException:java.io.IOException:无法中止hudson.remoting.RequestAbortedException:hudson.remoting .RequestAbortedException:java.io.IOException:无法在hudson.remoting.RequestAbortedException.wrapForRethrow(RequestAbortedException.java:41)上放弃hudson.remoting.RequestAbortedException.wrapForRethrow(RequestAbortedException.java:34)at hudson.remoting.Request.call (Request.java:174)at hudson.remoting.Channel.call(Channel.java:739)at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:168)at com.sun.proxy。$ Proxy49.join(Unknown源)在hudson.Launcher $ RemoteLauncher $ ProcImpl.join(Launcher.java:951)at hudson.tasks.CommandInterpreter.join(CommandInterpreter.java:137)at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:97)at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)at hudson.tasks.BuildStepMonitor $ 1.perform(BuildStepMonitor.java:20)at h 在hudson.model.Build上生成$ BuildBuildExecution.perform(AbstractBuild.java:745)$ buildExecution.build(Build.java:198)at hudson.model.Build $ BuildExecution.doRun(Build.java:159)在hudson.Hudson.model.AbstractBuilderBuildBuildBuildExecution.run(AbstractBuild.java:518)处hudson.model.Run.execute(Run.java:1709)处的hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)。 model.ResourceController.execute(ResourceController.java:88)at hudson.model.Executor.run(Executor.java:231)

引起者:hudson.remoting.RequestAbortedException:java.io.IOException:在hudson.remoting.Channel.terminate(Channel.java:802)处的hudson.remoting.Request.abort(Request.java:299)处无法中止.remoting.Channel $ 2.terminate(Channel.java:483)at hudson.remoting.AbstractByteArrayCommandTransport $ 1.terminate(AbstractByteArrayCommandTransport.java:72)at org.jenkinsci.remoting.nio.NioChannelHub $ NioTransport.abort(NioChannelHub.java:184) )at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:563)at jenkins.util.ContextResettingExecutorService $ 1.run(ContextResettingExecutorService.java:28)at java.util.concurrent.Executors $ RunnableAdapter.call(Unknown Source)在java.util.concurrent.FutureTask $ Sync.innerRun(Unknown Source)在java.util.concurrent.FutureTask.run(Unknown Source)在java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)在java.util .concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source)在java.lang.Thread.run(Unknown Source)

导致:java.io.IOException:无法中止... 9更多

由:java.io.IOException导致:现有连接被sun.nio.ch.SocketDispatcher.read0(本地方法)上的远程主机在太阳时在sun.nio.ch.SocketDispatcher.read(未知源)强制关闭。 nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)at sun.nio.ch.IOUtil.read(Unknown Source)at sun.nio.ch.SocketChannelImpl.read(Unknown Source)at org.jenkinsci.remoting.nio.FifoBuffer $ Pointer.receive(FifoBuffer.java:136)at org.jenkinsci.remoting.nio.FifoBuffer.receive(FifoBuffer.java:306)at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:496).. 。7更多


我也在Azure中设置Jenkins CI,并且遇到了同样的问题。 具体来说,我会在Jenkins从站错误日志中看到这个错误:

SEVERE: I/O error in channel channel
java.net.SocketException: Connection reset

要解决这个问题,你需要增加从设备对主设备的频率。 您可以通过将Dhudson.slaves.ChannelPinger.pingInterval系统属性添加到主jenkins.xml文件来完成jenkins.xml操作。

我将其修改为每2分钟ping一次,并且该通道能够保持连接而不丢弃它。 XML看起来像这样:

<arguments>
  -Xrs -Xmx256m -Dhudson.slaves.ChannelPinger.pingInterval=2 
  -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle 
  -jar "%BASE%jenkins.war" 
  --httpPort=8080
</arguments>

欲了解更多信息,你可以看到相关的票。


如果你有更新版本的Jenkins(我们的版本是1.584),你可以进入奴隶的节点配置页面,点击启动方法下的高级按钮,然后将-Dhudson.slaves.ChannelPinger.pingInterval=2添加到JVM选项字段。

这为我们做了诡计!

链接地址: http://www.djcxy.com/p/78739.html

上一篇: Connection issue with Jenkins slave on Windows Azure

下一篇: Compilation error with generics and ternary operator in JDK 7