java - Jenkins 在构建和构建后之间挂起

标签 java jenkins freeze thread-sleep

将 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)

可以找到引用代码here (从版本 2.141 开始存在)。

threadDump #1 , threadDump #2

我们能做些什么吗?

最佳答案

2.141 在进程终止时引入了 2 分钟的等待时间(这似乎与构建期间创建的进程数成倍增加)

https://github.com/jenkinsci/jenkins/commit/d8eac92ee9a1c19bf145763589f1c152607bf3ed

不确定为什么 killSoftly 不起作用,但您可以配置超时

在您的 jenkins.xml 中,您可以将其添加到您的 /service/arguments 元素(在 -jar 之前),如下所示:

-DSoftKillWaitSeconds=0

这样做并重新启动 jenkins 后,您应该能够在 /systemInfo 下找到您的 SoftKillWaitSeconds 设置

并且您的构建时间应该恢复正常

关于java - Jenkins 在构建和构建后之间挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54039226/

相关文章:

java - 使用 `new EdgeOptions()` 优于 `DesiredCapabilities.edge()` 通过 Jenkins 和 Selenium 启动远程 Microsoft Edge 浏览器错误

使用 Go 的 Docker 代理

java - Swing 组件由于方法很少而卡住

SSMS SQL SERVER Management Studio 2012 启动卡住

ffmpeg - Packet Corruption : Why sometimes ffmpeg . bat批量视频编辑让我的电脑不稳定无法重启?

java - 如何使用 jUnit 5 Assertions 检查异常消息是否以字符串开头?

javascript - 如何在 CBC 模式和 PKCS7 填充中解码使用 AES-256 加密的数据?

git - "FATAL: Error computing merge base"是什么意思?

java - 使用 Java 应用程序启动器

java - 在 JSP 中获取返回值