jenkins-cli构建触发器连接超时,长时间运行的工作

时间:2018-08-03 14:52:40

标签: connection-timeout jenkins-cli

我使用udeploy Shell步骤中的followig命令来调用Jenkins作业。我需要等待工作完成,然后再继续进行udeploy中的步骤。

无论我是直接从服务器上的Shell还是从Udeploy中的Shell步骤调用jenkins作业,问题都是相同的。

命令:- java -jar jenkins-cli.jar -s -remoting build -s --username --password''

短期作业的输出(几分钟)

ExoPlayer.release

长时间运行的作业的输出(不确定确切的位置,但对于运行了一个小时的作业已经注意到了) *詹金斯的工作完成得很好 *返回外壳的状态是这个

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

出于测试目的,甚至没有在从属配置上设置空闲时间。

jenkins作业完成后12分钟将引发错误消息。即使该作业需要4个小时,它也会成功执行该作业,最后它会引发错误。

如果连接断开,则错误将在发生问题时出现,而并非总是在作业完成后出现。

我应该在网络/防火墙中检查些什么来解决此问题?我们没有为从属连接设置任何特定的端口。

tcpdump对于较大的持续时间来说非常大,以检查它何时准确下降。 有什么更好的方法来解决此问题。

1 个答案:

答案 0 :(得分:0)

这听起来像您的Jenkins主服务器和从服务器之间存在某些断开您会话的连接。要么那个,要么您的奴隶在构建过程中变得无响应。我已经让Jenkins的构建进行了长达24小时的工作,没有任何问题,并且对构建时间的长度没有严格的限制。

如果我不得不猜测您的主服务器和从服务器之间有一个VPN隧道或NAT网关,并且由于构建没有向主服务器报告任何内容,那么什么也没发送。 VPN和NAT网关通常会终止在给定时间间隔内不发送任何数据的连接,以清除其连接表。 SSH具有内置的keepalive功能来解决此问题。

在构建从属服务器上,尝试在/ etc / ssh / ssh_config中使用setting the following(假设您使用的是openssh):

ServerAliveInterval 300

这将告诉您的从属设备每5分钟发送一次no_op数据包,以确保中间网络设备不会终止您的连接。

它看起来不像Jenkins supports setting keepalive on the master side yet