Jenkins未执行作业(挂起-等待下一个执行者)
詹金斯不会执行任何工作。查看之后,我禁用了所有从属节点,但一个简单的作业甚至不会在主节点上运行Jenkins未执行作业(挂起-等待下一个执行者),jenkins,Jenkins,詹金斯不会执行任何工作。查看之后,我禁用了所有从属节点,但一个简单的作业甚至不会在主节点上运行 怎么了?即使主节点离线,Jenkins管理控制台也可以运行。当Jenkins的磁盘空间用完时,可能会发生这种情况 要确认,请执行以下操作(感谢geekride-jenkins等待下一位可用的执行人): 转到Jenkins->管理Jenkins->管理节点 检查“主”节点是否处于脱机状态。它可能报告主节点磁盘空间不足 我遇到了类似的问题,因为我的主人被设置为“将这台机器只用于捆绑作业”。因此,即使我禁
怎么了?即使主节点离线,Jenkins管理控制台也可以运行。当Jenkins的磁盘空间用完时,可能会发生这种情况 要确认,请执行以下操作(感谢geekride-jenkins等待下一位可用的执行人):
- 转到Jenkins->管理Jenkins->管理节点
- 检查“主”节点是否处于脱机状态。它可能报告主节点磁盘空间不足
转到Jenkins-->管理Jenkins-->管理节点,然后单击主节点的配置按钮(看起来像螺丝刀和扳手)。检查使用情况并确保其处于“尽可能多地利用此从机”状态。我玩游戏有点晚了,但这可能会帮助其他人 在我的例子中,我的jenkins master有一个共享的外部资源,由分配给jenkins作业。由于插件中的错误(测试版),我发现我的资源被前一个作业锁定,但在前一个作业取消时没有解锁 要了解资源当前是否处于锁定状态,请导航到受影响的jenkins节点,jenkins->Manage jenkins->Manage Nodes->master 您应该看到任何外部资源的当前状态。如果出现意外锁定,这可能是作业等待执行者的原因 我找不到有关如何手动解决此问题的任何详细信息
重新启动jenkins并没有解决问题
最后,我采取了残酷的做法:
- 删除外部资源
(请参见Jenkins->管理Jenkins->管理节点->主节点->配置) - 重新启动詹金斯
- 重新创建外部资源
- 转到Jenkins->管理Jenkins->管理节点
- 审视“主人” 节点。(单击配置图标)
- 什么对我有效:我终于注意到Jenkins主仪表板左侧的Build Executor Status窗口。我在本地系统上用2个执行器运行一个dev/test实例。两者当前都被未运行的生成占用。取消这些作业后,我的第三个(待定)作业能够运行。对于我来说,我必须手动重新启动执行器。单击“Build Executor Status”下的“Dead”并按下重新启动按钮。在我的例子中,我注意到当盒子内存不足(RAM)时出现这种行为
我转到Jenkins->管理Jenkins->管理节点,发现内存不足异常。
我刚释放了计算机上的一些内存,作业开始进入执行器。我遇到了类似的问题,因为我的主程序设置为executor的“\(Jenkins可能在该代理上执行的最大并发构建数) 转到Jenkins-->管理Jenkins-->管理节点,然后单击主节点的配置按钮(增加一次运行多个作业的执行器数量)。
增加了它,问题得到了解决。下面的解决方案对我有效 詹金斯-->管理詹金斯-->管理节点-->主节点-->配置--> 节点属性-->在节点上限制作业执行已启用,并授予特定用户访问权限。我已授予自己访问权限,然后作业开始运行
如果启用了限制节点上的作业执行,则计划任务无法运行。在我的情况下,我在文件中设置了以下内容
节点(“节点”){
...
}
没有名为“node”的节点,只有master(在完成一些基本教程后,该值已留在那里)。将该值更改为“master”后,生成工作正常。在我的情况下,我刚刚安装了“Authorize Project”插件,并在“Authorize Project”中错误地设置了策略管理Jenkins->Configure Global Security->Access Control for Builds“作为匿名运行”。因此“匿名”无权执行作业
将第一个策略设置为“以触发构建的用户的身份运行”将解锁排队的作业。在我的情况下,这类似于@Michael Easter:由于磁盘空间不足,我在作业中遇到问题。我清除了一些空间,重新启动了Jenkins,但问题仍然存在
解决方案是转到Jenkins->Manage Jenkins->Manage Nodes,只需单击按钮即可更新状态。在我的例子中,这是由于执行者的数量(我有1个)和从管道运行Jenkins作业(项目)(我的管道脚本在Jenkins中启动了其他作业)。它导致了死锁-我的管道占用了执行器并正在等待其作业,但该作业正在等待自由执行器 解决方案可能是在
Jenkins->Manage Jenkins->Manage Nodes->Configure(所需节点上的图标)
中增加执行者的。简短回答:
杀死主机上运行的所有作业
在我的例子中,有3个作业挂在主机上超过10天,没有人注意到。我们通常不直接在主机上运行任何作业,一切都在从机上运行。我杀死了挂起的这3个作业,从机上的执行者自动开始拾取作业
请注意,尽管我们有8个从机,但只有1个从机处于此受影响状态
[编辑]我们找到了为什么只有一个从机处于此受影响状态的答案。
当Jenkins从机停机时,所有挂起的作业都会自动转移到主机。我杀死的所有3个挂起的作业都来自该从机,因此这可能是主机和该特定从机之间的连接问题。在我的情况下,我必须
agent {
docker {
image 'bitnami/mongodb:latest'
reuseNode true
}
}