詹金斯不会执行任何工作。查看this question后,我已禁用所有从属节点,但一个简单的作业甚至不会在主节点上运行。
有什么问题?
答案 0 :(得分:62)
即使主节点脱机,Jenkins管理控制台也可以运行。当Jenkins磁盘空间不足时,就会发生这种情况。
要确认,请执行以下操作(感谢geekride - jenkins-pending-waiting-for-next-available-executor):
答案 1 :(得分:17)
在我的情况下,执行者没有被设置为0。 增加它并解决问题。
答案 2 :(得分:16)
就我而言,我在JenkinsFile中设置了以下内容
node('node'){
...
}
没有名为'node'的节点,只有master(在遵循一些基本教程之后,该值已经留在那里)。将值更改为“master”使构建工作正常。
答案 3 :(得分:4)
我遇到了类似的问题,因为我的主人被设置为"只保留这台机器用于绑定工作。"所以,即使我禁用了奴隶,詹金斯继续绕过大师,寻找其他东西。
转到Jenkins - >管理Jenkins - >管理节点,然后单击主节点的配置按钮(看起来像螺丝刀和扳手)。检查用法并确保它已经开启"尽可能多地使用此奴隶。"
答案 4 :(得分:4)
我在游戏中有点晚了,但这可能有助于其他人。
在我的情况下,我的jenkins master有一个共享外部资源,由external-resource-dispatcher-plugin分配给jenkins作业。由于插件中的错误JENKINS-19439(处于测试阶段),我发现我的资源已被上一个作业锁定,但在上一个作业被取消时无法解锁。
要确定资源当前是否处于锁定状态,请导航到受影响的jenkins节点,Jenkins - >管理Jenkins - >管理节点 - >主
您应该看到任何外部资源的当前状态。如果有任何意外锁定,这可能是工作等待执行人的原因。
我无法找到有关如何手动解决此问题的任何详细信息。
重新启动jenkins并没有解决问题。
最后,我采用了残酷的方法:
答案 5 :(得分:3)
In my case, I noticed this behavior when the box was out of memory (RAM) I went to Jenkins -> Manage Jenkins -> Manage Nodes and found an out of memory exception. I just freed up some memory on the machine and the jobs started to go into the executors.
答案 6 :(得分:3)
在我的情况下,我刚刚安装了“授权项目”插件,并错误地在“管理Jenkins - >配置全局安全 - >构建访问控制”中将策略设置为“以匿名方式运行”。所以'匿名'无权执行这项工作。
将第一个策略设置为“作为触发构建的用户运行”解锁了排队的作业。
答案 7 :(得分:3)
简短答案: 杀死主服务器上正在运行的所有作业。
在我的情况下,主服务器上有3个工作挂了10天以上,而这却没有引起注意。我们通常不直接在主服务器上运行任何作业,而是在从属服务器上运行所有作业。我杀死了这3个被吊死的工作,奴隶上的执行者自动开始捡起工作。
需要注意的是,即使我们有8个奴隶,只有1个奴隶处于这种受影响的状态。
[编辑]我们找到了为什么只有一个奴隶处于这种受影响状态的答案。 当Jenkins从属服务器出现故障时,所有挂起的作业将自动转移到主服务器。我杀死的所有3个挂起的工作都来自此从属设备,因此这很可能是主机与该特定从属设备之间的连接问题。
答案 8 :(得分:1)
在我的情况下,它是由执行者数量(我有1)和从Pipeline运行Jenkins Job(Project)引起的(我的管道脚本在Jenkins中启动了其他Job)。它导致死锁 - 我的管道执行器正在等待它的工作,但是工作正在等待免费的执行者。
解决方案可能会在# of executors
中增加Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node)
。
答案 9 :(得分:1)
如果您安装了 Parameterized Trigger 插件,构建队列中等待的作业可能是一个已知问题 JENKINS-47792。
解决方法是将参数化触发器插件降级到 2.35.1 版。 请注意,您可能还需要降级依赖项,例如 git 插件。
答案 10 :(得分:0)
对我来说,我必须手动重启执行程序。点击" Dead"在"构建执行者状态"并按下重启按钮。
答案 11 :(得分:0)
我遇到了类似的问题,因为我的主人被设置为"执行程序数(Jenkins可以在此代理上执行的最大并发构建数)。
转到Jenkins - >管理Jenkins - >管理节点,然后单击主节点的配置按钮(增加执行器的数量,以便一次运行多个作业)。
答案 12 :(得分:0)
对我有用:我终于注意到主Jenkins仪表板左侧的Build Executor Status窗口。我在本地系统上运行一个dev / test实例,带有2个执行程序。两者目前都在没有运行的构建中占用。取消这些工作后,我的第三个(待定)工作就能够运行了。
答案 13 :(得分:0)
就我而言,它类似于@Michael Easter:由于磁盘空间不足,我在工作中遇到了问题。我清理了一些空间,重新启动了Jenkins,但问题仍然存在。
解决方案是去Jenkins - >管理Jenkins - >管理节点,只需单击按钮即可更新状态。
答案 14 :(得分:0)
就我而言,我必须在作业的常规设置中设置Execute concurrent builds if necessary
。
答案 15 :(得分:0)
您可能已经设置了里程碑,并且直到之前的作业完成,您的作业才能运行。
答案 16 :(得分:0)
我刚刚添加了一个带有 docker 代理的阶段。由于我只有一个节点,master,我不得不告诉容器重用早期阶段的节点:
agent {
docker {
image 'bitnami/mongodb:latest'
reuseNode true
}
}
您可以vote将此作为代理的默认行为并防止这种锁定。