8

我正在使用 Jenkins 的Pipeline(以前称为 Workflow)插件集合。我设法在我的 Jenkins 服务器上创建了一个我无法停止的工作流作业。查询当前堆栈跟踪Thread.getAllStackTraces().keySet().each() { t -> println(t.getName())}不会在输出中返回与此作业匹配的任何执行程序。最重要的是,如果这是 Build Executor Status 窗口中唯一的实时作业,则根本没有列出任何执行器。

重新启动正在执行作业的从站没有任何效果。重新启动 Jenkins 主服务器也没有效果。关于如何摆脱这件事有什么想法吗?

4

3 回答 3

13

我可以通过向以下位置提交 POST 请求来停止作业:( http://jenkins.fqdn:8080/job/$JobName/branch/$BranchName/8/term注意 $JobName 和 $BranchName 变量)

我通过执行以下操作找到了这个 URI:

  1. 单击作业旁边的数字以导航到该确切作业。
  2. 单击控制台输出链接。
  3. 右键单击“单击此处强制终止正在运行的步骤”链接。
  4. 单击检查菜单项。(这是在 Chrome 中;根据您的首选浏览器调整此步骤)
  5. 从 Ajax.Request 调用中复制 URI。例如:onclick="new Ajax.Request('http://jenkins.fqdn:8080/job/$JobName/branch/$BranchName/8/term'); false"

出于某种原因,单击Click here to forcibly terminate running steps链接实际上并没有终止工作,但手动提交发布请求却可以。我怀疑这可能只是 UI 代码中的一个小错误。

于 2015-12-22T17:52:02.950 回答
9

我今天遇到了同样的问题,上面评论中的解决方法对我没有帮助,也没有发送/kill命令而不是/term.

我在这里找到了可行的解决方案

  1. 打开https://your.jenkins.fqdn/script
  2. Jenkins.instance.getItemByFullName("jobName").getBuildByNumber(9).finish(hudson.model.Result.ABORTED, new java.io.IOException("Aborting build"));
  3. 按“运行”
于 2017-11-23T08:26:03.937 回答
1

这是一种更简单的方法,对我来说效果很好。您需要做的就是编辑onclickhtml页面中的属性,如下

  1. 打开挂起的作业(管道)的控制台日志
  2. 单击可终止作业的任何内容(x 图标、“单击此处强制终止正在运行的步骤”等)以显示“单击此处强制终止整个构建”链接(目前无法单击)
  3. 打开浏览器的控制台(对 chrome 使用以下三种中的任何一种:F12;ctrl + shift + i;菜单->更多工具->开发者工具
  4. 手动找到“单击此处强制终止整个构建”链接或使用控制台的“选择页面中的元素”按钮
  5. 双击onclick属性以编辑其值
  6. 追加有s_httphttps
  7. 按 Enter 提交更改
  8. 单击“单击此处强制终止整个构建”链接

使用截图作为参考 在此处输入图像描述

于 2019-01-07T21:51:27.917 回答