詹金斯(Jenkins)不执行工作(正在等待-等待下一个执行者)


76

詹金斯不会执行任何工作。看完这个问题后,我禁用了所有从属节点,但是简单的工作甚至都不会在主节点上运行。

怎么了?

Answers:


78

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

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

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

17
我也遇到了类似的问题。问题是我运行了多个作业,执行者的数量为2(默认值)。因此其他工作进入等待状态。在执行正常之后,我增加了执行程序的数量
Amal G Jose

是的,这就是问题所在。
2015年

1
:标记答案的解决方案#2固定在这里,我的问题stackoverflow.com/questions/23445457/...
trickpatty

在此处提供的解决方案之上,也面临类似的问题。我不得不重启詹金斯。没有重新启动,尽管有足够的内存,但作业仍然卡住了
Anoop

在执行此操作时为我工作:管理Jenkins>管理节点>主节点>配置>使用:尽可能使用此节点
D. Visser,

27
  • 转到Jenkins->管理Jenkins->管理节点
  • 检查“主”节点。(单击“配置”图标)

在我的情况下,将执行程序的数量设置为0。将其增加并修复问题。


我刚刚发现,执行程序的数量至少应为2的困难方式。如果您的构建管道运行任何其他构建命令,则将需要两个执行程序:一个用于管道,一个用于构建命令。
先生先生

18

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

node('node'){ ... }

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


谢谢你,我确实在使用一个不存在的节点!如果节点名称中有错字,它将永远卡住!
GabLeRoux '16

6

我遇到了一个类似的问题,因为我的主人被设置为“仅将这台机器留作捆绑工作”。因此,即使我禁用了奴隶,詹金斯仍然绕过主人,寻找其他东西。

转到Jenkins->管理Jenkins->管理节点,然后单击主节点的配置按钮(看起来像螺丝刀和扳手)。检查用法,并确保其在“尽可能多地利用此从属服务器”上。


5

就我而言,这是由执行程序(我有1个)的数量以及从Pipeline运行Jenkins Job(项目)引起的(我的管道脚本在Jenkins中启动了其他Job)。它造成了僵局-我的管道中有执行器,并且正在等待其执行,但是该作业正在等待免费的执行器。

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


这个解决方案对我有用。谢谢
迪卡

4

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

在我的情况下,我的jenkins主服务器拥有一个共享的外部资源,该资源由external-resource-dispatcher-plugin分配给jenkins作业。由于插件(测试版)中的JENKINS-19439错误,我发现我的资源已被先前的作业锁定,但是在取消先前的作业时并未解锁。

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

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

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

  • 删除外部资源
    (请参阅Jenkins-> Manage Jenkins-> Manage Nodes-> master-> configure)
  • 重新启动詹金斯
  • 重新创建外部资源

3

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


3

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

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


2

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

在我的情况下,有3个作业在主服务器上挂了10天以上,却未被注意到。我们通常不直接在主服务器上运行任何作业,而是在从属服务器上运行所有作业。我杀死了这3个被挂起的工作,奴隶上的执行者自动开始捡起工作。

请注意,即使我们有8个奴隶,也只有1个奴隶处于此受影响状态。

[编辑]我们找到了为什么只有一个奴隶处于这种受影响状态的答案。当Jenkins从属服务器出现故障时,所有挂起的作业会自动转移到主服务器。我杀死的所有3个挂起的工作都来自此从属设备,因此它很可能是主机与该特定从属设备之间的连接问题。


1

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

Jenkins->管理Jenkins->管理节点->主节点->配置->节点属性->限制节点上的作业执行-已启用并授予特定用户访问权限。我已授予自己访问权限,然后作业开始运行。

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


1

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

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


0

对我有用的东西:我终于注意到Jenkins主仪表板上左侧的Build Executor Status窗口。我在具有2个执行程序的本地系统上运行开发/测试实例。两者当前都被未运行的构建占用。取消这些作业后,我的第三个(待处理)作业得以运行。


0

对我来说,我必须手动重新启动执行程序。单击“构建执行器状态”下的“死”,然后按重新启动按钮。


0

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

转到Jenkins->管理Jenkins->管理节点,然后单击主节点的配置按钮(增加一次执行多个作业的执行程序的数量)。



0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.