【问题标题】:Jenkins not executing jobs (pending - waiting for next executor)詹金斯不执行作业(待定 - 等待下一个执行者)
【发布时间】:2013-02-13 07:22:27
【问题描述】:

Jenkins 不会执行任何作业。查看this question 后,我已禁用所有从节点,但一个简单的作业甚至无法在主节点上运行。

怎么了?

【问题讨论】:

    标签: jenkins


    【解决方案1】:

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

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

    • 转到 Jenkins -> 管理 Jenkins -> 管理节点
    • 检查“主”节点以查看它是否处于脱机状态。可能会报告主节点磁盘空间不足。

    【讨论】:

    • 我也遇到了类似的问题。问题是我运行了多个作业,而我的执行者数量为 2(默认)。所以其他工作进入等待状态。我增加了执行器的数量,之后它工作正常
    • 是的,这就是问题所在。
    • 此处标记答案的解决方案 #2 为我解决了这个问题:stackoverflow.com/questions/23445457/…
    • 在此处提供的解决方案之上遇到了类似的问题。我不得不重新启动詹金斯。没有重启,虽然有足够的内存,但是作业还是卡住了
    • 虚拟机磁盘空间不足。非常感谢
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      • 删除外部资源
        (参见 Jenkins -> 管理 Jenkins -> 管理节点 -> 主节点 -> 配置)
      • 重启詹金斯
      • 重新创建外部资源

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

                【解决方案8】:
                • 转到 Jenkins -> 管理 Jenkins -> 管理节点
                • 检查“主人” 节点。(点击配置图标)

                在我的例子中,执行者的数量设置为 0。 增加它并修复问题。

                【讨论】:

                • 我刚刚发现执行器的数量至少应为 2。如果您的构建管道运行任何其他构建命令,您将需要两个执行器:一个用于管道,一个用于构建命令。
                【解决方案9】:

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

                Jenkins --> 管理 Jenkins --> 管理节点 --> master -> 配置 --> 节点属性 --> Restrict Jobs execution at node - 已启用并授予特定用户访问权限。我自己授予了访问权限,然后工作开始运行。

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

                【讨论】:

                  【解决方案10】:

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

                  node('node'){ ... }

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

                  【讨论】:

                  • 谢谢你,我确实使用了一个不存在的节点!如果节点名有错别字,将永远卡死!
                  【解决方案11】:

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

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

                  【讨论】:

                    【解决方案12】:

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

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

                    【讨论】:

                      【解决方案13】:

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

                      解决方案可能是在Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node) 中增加# of executors

                      【讨论】:

                        【解决方案14】:

                        简短回答: 杀死所有在 master 上运行的作业。

                        在我的例子中,有 3 个作业挂在 master 上超过 10 天,但未被注意到。我们通常不会直接在 master 上运行任何作业,一切都在 slave 上运行。我杀死了这 3 个挂起的作业,slave 上的 executor 自动开始接作业。

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

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

                        【讨论】:

                          【解决方案15】:

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

                          【讨论】:

                            【解决方案16】:

                            您可能设置了里程碑,并且您的作业要等上一个作业完成后才能运行。

                            【讨论】:

                              【解决方案17】:

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

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

                              您可以vote 将此设置为代理的默认行为并防止此类锁定。

                              【讨论】:

                                【解决方案18】:

                                如果您安装了 Parameterized Trigger 插件,则在构建队列中等待的作业可能是一个已知问题JENKINS-47792

                                解决方法是将 Parameterized Trigger 插件降级到版本 2.35.1。 请注意,您可能还需要降级依赖项,例如 git 插件。

                                【讨论】:

                                  【解决方案19】:

                                  在我的环境中(图像 jenkins:lts-jdk11、jnlp-agent-maven 和 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
                                  

                                  【讨论】:

                                    猜你喜欢
                                    • 1970-01-01
                                    • 2020-03-13
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2020-01-04
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多