You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure VM Agents插件时Windows节点持续处于挂起状态

解决Jenkins Azure Windows从节点重启后挂起的问题

我来帮你梳理这个问题的根源和可行的解决方向,从你描述的复现场景和日志来看,核心矛盾是Azure Windows虚拟机作为Jenkins从节点重启后,明明显示在线却被标记为(suspended),导致构建任务无法调度,最终Azure VM Agents插件自动创建新虚拟机承接任务。

问题复现特征

  • 触发条件:手动给Azure Windows从节点安装额外软件后执行重启操作
  • 表现:重启后构建任务停滞,控制台提示Waiting for next available executor on windows
  • 节点状态:Jenkins中显示在线,但后缀带有(suspended)标记,插件会自动新建VM替代该节点

日志关键信息分析

从你提供的日志片段里,能定位到几个关键触发点:

  1. 主从节点通信通道异常:

    May 25, 2018 3:47:29 PM hudson.remoting.SynchronousCommandTransport$ReaderThread run SEVERE: I/O error in channel slavew823810 java.io.IOException: Unexpected termination of the channel

    这说明VM重启后,Jenkins主节点和从节点之间的通信通道出现了意外中断,主节点无法正常识别从节点的在线状态。

  2. 插件清理任务标记节点为挂起:

    May 25, 2018 3:47:35 PM com.microsoft.azure.vmagent.AzureVMAgent shutdown INFO: AzureVMAgent: shutdown: Add suspended status for node slavew823810

    Azure VM Agents的定期清理任务检测到通信异常后,将该节点标记为挂起,同时尝试关闭对应的VM,随后触发了新虚拟机的创建逻辑。

可行的解决步骤

1. 确保Jenkins代理以服务形式运行

检查Windows虚拟机上的Jenkins代理是否设置为系统服务:

  • 服务模式下,VM重启后代理会自动启动并重新连接主节点,避免临时进程重启后无法恢复通信的问题
  • 可以在Jenkins节点配置中选择“Install as Windows service”选项完成设置

2. 调整插件的状态检测超时配置

在Jenkins的Azure VM Agents插件配置页面:

  • 适当延长节点状态检测的超时时间,默认检测周期可能过短,导致重启后的节点还未完全初始化就被判定为异常
  • 同时可以调整“挂起节点自动清理”的延迟时间,给节点足够的恢复窗口

3. 检查VM的网络与防火墙配置

重启后Windows VM的防火墙规则可能出现重置,需要确保:

  • Jenkins主节点和从节点之间的通信端口(默认50000)保持开放
  • VM的网络安全组(NSG)规则允许主从节点的双向通信

4. 更新插件与Jenkins核心版本

旧版本的Azure VM Agents插件可能存在重启后状态识别的bug:

  • 将Azure VM Agents插件升级到最新稳定版
  • 同步更新Jenkins核心到兼容的稳定版本,修复已知的兼容性问题

5. 临时应急处理方案

如果遇到节点挂起的紧急情况:

  • 手动进入Jenkins节点管理页面,取消该节点的挂起状态
  • 远程登录到Windows VM,重启Jenkins代理服务,尝试恢复主从通信

内容的提问来源于stack exchange,提问作者SCoyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:39:54