在将Jenkins更新到2.156版(从1.6版开始)之后,我们的一些构建作业在完成后以及移至构建后动作之前会卡住。作业本身在5分钟内完成(与之前相同),然后挂起5-10分钟再继续。
我设法将其缩小为:
"Executor #10 for master : executing 03_masa #4390" Id=34464 Group=main TIMED_WAITING at java.lang.Thread.sleep(Native Method) at hudson.util.ProcessTree$WindowsOSProcess.killSoftly(ProcessTree.java:560) at hudson.util.ProcessTree$WindowsOSProcess.killRecursively(ProcessTree.java:520) at hudson.util.ProcessTree$Windows.killAll(ProcessTree.java:666) at hudson.Launcher$LocalLauncher.kill(Launcher.java:955) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:510) at hudson.model.Run.execute(Run.java:1810) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429)
可以在此处找到引用的代码(自2.141版本开始提供)。
threadDump#1,threadDump#2
我们可以做些什么吗?
2.141引入了2分钟的进程终止等待时间(似乎与在构建期间创建的进程数量一样多)
https://github.com/jenkinsci/jenkins/commit/d8eac92ee9a1c19bf145763589f1c152607bf3ed
不确定为什么killSoftly不起作用,但是您可以配置超时
您可以在jenkins.xml中将其添加到/service/arguments元素中(在-jar之前),如下所示:
/service/arguments
-DSoftKillWaitSeconds=0
这样做并重新启动jenkins之后,您应该能够在下面找到您的SoftKillWaitSeconds设置 /systemInfo
/systemInfo
并且您的构建时间应该恢复正常