89

詹金斯不会执行任何工作。查看此问题后,我已禁用所有从属节点,但一个简单的作业甚至无法在主节点上运行。

怎么了?

4

19 回答 19

85

即使主节点离线,Jenkins 管理控制台也可以运行。当 Jenkins 磁盘空间不足时,可能会发生这种情况。

要确认,请执行以下操作(感谢 geekride - jenkins-pending-waiting-for-next-available-executor):

  • 转到 Jenkins -> 管理 Jenkins -> 管理节点
  • 检查“主”节点以查看它是否处于脱机状态。它可能报告主节点磁盘空间不足。
于 2013-02-27T13:10:12.357 回答
36
  • 转到 Jenkins -> 管理 Jenkins -> 管理节点
  • 检查“主”节点。(单击配置图标)

在我的情况下,执行者的数量设置为 0。增加它并解决问题。

于 2016-05-14T14:53:28.337 回答
21

就我而言,我的 JenkinsFile 中有以下设置

node('node'){ ... }

没有称为“节点”的节点,只有主节点(在遵循一些基本教程后,该值已留在其中)。将值更改为“master”使构建工作。

于 2016-08-16T14:34:34.900 回答
6

我遇到了类似的问题,因为我的主人被设置为“让这台机器只做捆绑工作”。所以,即使我禁用了奴隶,詹金斯继续绕过主人,寻找别的东西。

转到 Jenkins --> Manage Jenkins --> Manage Nodes,然后单击主节点的配置按钮(看起来像螺丝刀和扳手)。检查Usage并确保它在“Utilize this slave as much as possible”上。

于 2014-04-07T21:13:56.817 回答
6

在我的情况下,这是由执行者数量(我有 1 个)和从管道运行 Jenkins 作业(项目)引起的(我的管道脚本在 Jenkins 中启动了其他作业)。它导致了死锁- 我的管道持有执行者并正在等待它的工作,但该工作正在等待免费的执行者。

解决方案可能会增加# of executorsin Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node)

于 2017-10-05T12:53:46.863 回答
4

我玩游戏有点晚了,但这可能对其他人有所帮助。

在我的例子中,我的 jenkins master 有一个共享的外部资源,它由external-resource-dispatcher-plugin分配给 jenkins 作业。由于插件中的错误JENKINS-19439(处于测试阶段),我发现我的资源已被之前的作业锁定,但在取消之前的作业时没有解锁。

要查看资源当前是否处于锁定状态,请导航到受影响的 jenkins 节点,Jenkins -> Manage Jenkins -> Manage Nodes -> master

您应该看到任何外部资源的当前状态。如果有任何意外锁定,这可能是作业等待执行者的原因。

我找不到有关如何手动解决此问题的任何详细信息。
重新启动詹金斯并没有解决问题。
最后我采用了残酷的方法:

  • 移除外部资源
    (参见 Jenkins -> Manage Jenkins -> Manage Nodes -> master -> configure)
  • 重启詹金斯
  • 重新创建外部资源
于 2014-11-27T00:58:40.433 回答
4

就我而言,当盒子内存不足(RAM)时,我注意到了这种行为,我去了 Jenkins -> Manage Jenkins -> Manage Nodes,发现内存不足异常。我刚刚释放了机器上的一些内存,工作开始进入执行程序。

于 2016-04-04T18:50:08.410 回答
4

就我而言,我刚刚安装了“授权项目”插件,并错误地将“管理 Jenkins -> 配置全局安全性 -> 构建访问控制”中的策略设置为“以匿名方式运行”。所以“匿名者”无权执行这项工作。

将第一个策略设置为“以触发构建的用户身份运行”解锁了排队的作业。

于 2016-12-16T17:55:39.307 回答
2

简短的回答:杀死所有在主服务器上运行的作业。

在我的情况下,有 3 个作业挂在主人身上超过 10 天,没有被注意到。我们通常不会直接在 master 上运行任何作业,一切都在 slave 上运行。我杀死了这三个被挂起的工作,奴隶上的执行者自动开始接受工作。

需要注意的是,即使我们有 8 个从站,也只有 1 个从站处于这种受影响的状态。

[编辑] 我们找到了为什么只有一个奴隶处于这种受影响状态的答案。当 Jenkins slave 宕机时,所有挂起的作业都会自动转移到 master。我杀死的所有 3 个挂起的作业都来自这个从站,所以它可能是主站和这个特定从站之间的连接问题。

于 2018-11-01T13:11:46.833 回答
1

对我来说,以下解决方案有效。

Jenkins --> Manage Jenkins --> Manage Nodes --> master -> configure --> Node properties --> Restrict Jobs execution at node - 已启用并授予特定用户访问权限。我自己授予了访问权限,然后工作开始运行。

如果启用了在节点上限制作业执行,则计划任务将无法运行。

于 2016-08-16T08:00:47.890 回答
1

就我而言,它类似于@Michael Easter:由于磁盘空间不足,我在工作中遇到了问题。我清理了一些空间,重新启动了 Jenkins,但问题仍然存在。

解决方案是转到 Jenkins -> Manage Jenkins -> Manage Nodes,然后单击按钮更新状态。

于 2017-06-20T18:08:20.640 回答
1

我刚刚添加了一个带有 docker 代理的阶段。由于我只有一个节点 master,我必须告诉容器重用早期阶段的节点:

  agent {
    docker {
        image 'bitnami/mongodb:latest'
        reuseNode true
    }
  }

您可以投票将其作为代理的默认行为并防止这种锁定。

于 2021-04-23T03:57:40.133 回答
1

如果您安装了参数化触发器插件,则在构建队列中等待的作业可能是已知问题JENKINS-47792

解决方法是将参数化触发器插件降级到版本 2.35.1。请注意,您可能还需要降级依赖项,例如git插件。

于 2021-06-09T12:30:05.327 回答
0

什么对我有用:我终于注意到 Jenkins 主仪表板左侧的 Build Executor Status 窗口。我在本地系统上使用 2 个执行程序运行一个开发/测试实例。两者目前都忙于未运行的构建。在取消这些工作后,我的第三个(待定)工作能够运行。

于 2015-06-29T15:52:29.290 回答
0

对我来说,我必须手动重新启动执行程序。单击“Build Executor Status”下的“Dead”,然后按下重新启动按钮。

于 2015-10-14T18:42:27.413 回答
0

我遇到了类似的问题,因为我的 master 设置为“# of executor(Jenkins 可以在此代理上执行的最大并发构建数)。

转到 Jenkins --> Manage Jenkins --> Manage Nodes,然后单击主节点的配置按钮(增加执行器的数量以一次运行多个作业)。

于 2016-05-04T08:18:00.230 回答
0

就我而言,我必须Execute concurrent builds if necessary在工作的常规设置中进行设置。

于 2018-11-27T05:25:41.703 回答
0

您可能设置了里程碑,并且您的工作在前一个工作完成之前不会运行。

于 2019-04-04T14:36:41.920 回答
0

在我的环境中(图像 jenkins:lts-jdk11、jnlp-agent-maven e jnlp-agent-maven:jdk11),为更新 jenkins 图像执行拉取操作,报告代理没有连接问题。但是所有工作都被消息阻止:

pending—Waiting for next available executor on

因此,对我来说,解决方案是停止并拉入两个代理图像:

docker pull jenkins/jnlp-agent-maven (jdk8)
docker pull jenkins/jnlp-agent-maven:jdk11
于 2021-11-17T13:42:19.747 回答