我在Jenkins slave上运行shell脚本时遇到以下错误,后者又调用另一个Jython脚本。
FATAL: hudson.remoting.RequestAbortedException: java.net.SocketException: Socket closed
hudson.remoting.RequestAbortedException: hudson.remoting.RequestAbortedException: java.net.SocketException: Socket closed
at hudson.remoting.RequestAbortedException.wrapForRethrow(RequestAbortedException.java:41)
at hudson.remoting.RequestAbortedException.wrapForRethrow(RequestAbortedException.java:34)
at hudson.remoting.Request.call(Request.java:174)
at hudson.remoting.Channel.call(Channel.java:714)
at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:167)
at com.sun.proxy.$Proxy74.join(Unknown Source)
at hudson.Launcher$RemoteLauncher$ProcImpl.join(Launcher.java:925)
at hudson.Launcher$ProcStarter.join(Launcher.java:360)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:94)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:63)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:781)
at hudson.model.Build$BuildExecution.build(Build.java:199)
at hudson.model.Build$BuildExecution.doRun(Build.java:160)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:562)
at hudson.model.Run.execute(Run.java:1665)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:246)
Caused by: hudson.remoting.RequestAbortedException: java.net.SocketException: Socket closed
at hudson.remoting.Request.abort(Request.java:299)
at hudson.remoting.Channel.terminate(Channel.java:774)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:69)
Caused by: java.net.SocketException: Socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at hudson.remoting.FlightRecorderInputStream.read(FlightRecorderInputStream.java:77
以下是流程概述
Master(AWS)--http - >奴隶(防火墙后面的跳箱) - > SSH进入另一个框 - >执行shell脚本 - >执行Jython
最后两位[执行shell脚本 - >执行Jython]是一个Oracle专有的shell脚本,它将调用Jython来部署代码。当使用特定选项调用Jython脚本进行远程部署时,我得到上述错误。对于所有其他选项,Jython脚本提供了所需的结果,并且像魅力一样。
当从我们网络中的不同主服务器调用相同的shell脚本时,相同的Jython脚本可以正常工作。流程是这样的
Master(Local) - > SSH进入另一个框 - >执行shell脚本 - >执行Jython
总而言之,当没有涉及从属JVM时,使用专有Oracle Jython脚本的远程部署可以正常工作。
使从属JVM在AWS上终止与master的连接以进行远程部署可能是错误的?
我玩过,它与超时无关。从站未脱机。
正如您现在可能已经猜到的那样,我们正试图将Jenkins Master转移到AWS。