【发布时间】:2018-08-03 23:06:23
【问题描述】:
我使用 udeploy Shell 步骤中的 followig 命令来调用 Jenkins 作业。我需要等待作业完成,然后继续 udeploy 中的进一步步骤。
无论我是直接从服务器上的外壳程序还是从 Udeploy 中的外壳程序步骤调用 jenkins 作业,问题都是一样的。
命令:- java -jar jenkins-cli.jar -s -remoting build -s --username --password ''
短期作业的输出(几分钟)
Aug 03, 2018 3:55:09 PM hudson.cli.CLI _main
WARNING: Failed to authenticate with your SSH keys. Proceeding as anonymous
Started Job » SleepJob #4
Completed Job #4 : SUCCESS
长时间运行的作业的输出(不确定失败的确切位置,但在运行了一个小时的作业中注意到了这一点) *詹金斯的工作完成得很好 *返回给shell的状态是这样的
Aug 03, 2018 11:42:53 AM hudson.cli.CLI _main
WARNING: Failed to authenticate with your SSH keys. Proceeding as anonymous
Started Job #1
Aug 03, 2018 1:54:36 PM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel CLI connection to <URL>
java.net.SocketException: Connection timed out (Read failed)
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:114)
at javax.crypto.CipherInputStream.read(CipherInputStream.java:239)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at hudson.remoting.FlightRecorderInputStream.read(FlightRecorderInputStream.java:91)
at hudson.remoting.ChunkedInputStream.readHeader(ChunkedInputStream.java:72)
at hudson.remoting.ChunkedInputStream.readUntilBreak(ChunkedInputStream.java:103)
at hudson.remoting.ChunkedCommandTransport.readBlock(ChunkedCommandTransport.java:39)
at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:63)
hudson.remoting.RequestAbortedException: java.net.SocketException: Connection timed out (Read failed)
at hudson.remoting.Request.abort(Request.java:329)
at hudson.remoting.Channel.terminate(Channel.java:992)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:96)
Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to CLI connection to <URL>
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.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:281)
at com.sun.proxy.$Proxy3.main(Unknown Source)
at hudson.cli.CLI.execute(CLI.java:380)
at hudson.cli.CLI._main(CLI.java:644)
at hudson.cli.CLI.main(CLI.java:426)
Caused by: java.net.SocketException: Connection timed out (Read failed)
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:114)
at javax.crypto.CipherInputStream.read(CipherInputStream.java:239)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at hudson.remoting.FlightRecorderInputStream.read(FlightRecorderInputStream.java:91)
at hudson.remoting.ChunkedInputStream.readHeader(ChunkedInputStream.java:72)
at hudson.remoting.ChunkedInputStream.readUntilBreak(ChunkedInputStream.java:103)
at hudson.remoting.ChunkedCommandTransport.readBlock(ChunkedCommandTransport.java:39)
at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:35)
at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:63)
出于测试目的,甚至在从属配置上也没有设置空闲时间。
在 jenkins 作业完成后 12 分钟抛出错误消息。即使作业需要 4 小时,它也会成功执行作业并在最后抛出错误。
如果连接中断,则错误会在问题发生时出现,而不是总是在作业完成后出现。
我应该在网络/防火墙中检查什么来解决这个问题?我们没有为从连接设置任何特定端口。
tcpdump 非常大,需要更长的时间来检查它何时下降。 有什么更好的解决问题的方法。
【问题讨论】:
标签: connection-timeout jenkins-cli