AC长稳偶现组件大量组件异常

基于25 930版本

framework.txt (1.5 MB)

答案内容由AI生成,仅供参考:

:pushpin: 结论

25.930 版本下进行 AC 长期稳定性测试时出现的组件批量异常问题,根本原因在于:

:red_exclamation_mark: AC 上电时序缺陷 + 组件服务注册竞争 + 可能的文件缺失/持久化失败 共同导致了 D-Bus 服务无法注册,从而引发 StartupCheck Failed

建议采取以下措施:

  • 优化组件启动依赖顺序;
  • 强化文件系统与持久化写入可靠性;
  • launch_control.json 中配置高可用组件;
  • 提高日志可读性以便快速定位。

只有系统化解决启动时序与资源协同问题,才能彻底消除此类偶发故障。

点击此处查看详细分析解答

AC长稳测试中组件异常问题分析(基于25.930版本)

根据提供的日志信息和上下文数据,对在 25.930 版本下进行 AC 长期稳定性测试(AC Long-Stability Test) 时偶现的多个组件启动失败问题进行综合分析与定位。


:magnifying_glass_tilted_left: 问题现象

在一次 AC 上电周期中,系统启动期间出现大量组件 StartupCheck Failed 异常,主要表现为:

  • 多个关键服务(如 power_mgmtpower_strategythermal_mgmt)报告 DBus 服务未找到
    org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.xxx was not provided by any .service files
    
  • certificate 组件持续报错 初始化未完成
    initialization is not complete while checking the startup status, status: Starting
    
  • 系统最后检测到 55 个组件中有 44 个正常,11 个组件异常,包括 ai_enginebios 等。
  • 日志中出现 hwdiscovery 的共享内存通信失败警告:
    shm reply failed, path: /bmc/kepler/ObjectGroup/..., member: GetById
    

该问题发生在基于 25.930 版本的系统上,属于 AC 启动阶段的概率性偶发故障


:puzzle_piece: 根本原因分析

结合知识图谱与日志内容,可得出以下几点关键结论:

1. DBus 服务注册失败导致组件检查异常

StartupCheck Failed 的核心报错是:

The name bmc.kepler.xxx was not provided by any .service files

这表明:虽然组件进程可能已尝试启动,但其对应的 DBus 服务名未能成功注册到系统总线,导致其他组件无法通过 D-Bus 访问它。

此类问题的常见原因包括:

  • 进程启动过慢或崩溃,未能完成 main.lua 初始化逻辑;
  • 跨进程通信(IPC)异常,如共享内存、D-Bus 总线拥塞或初始化顺序混乱;
  • 资源竞争或依赖服务未就绪,例如 certificate 组件处于 Starting 状态,阻塞了整体初始化流程。

:warning: 尤其注意certificate 组件长时间处于“初始化未完成”状态,可能是整个系统服务注册延迟的根源之一。


2. AC 启动时序问题与 25.930 版本特性相关

文档明确指出:

“由于930版本存在丝印缓存的时序问题,因此在代码中设置AC上电额外延迟80s”

这说明 25.930 版本本身存在 AC 上电的时序缺陷,当前通过人为增加延迟来规避。这也印证了:

  • 在 AC 启动过程中,部分组件因依赖资源未准备好而启动失败;
  • 此类问题是概率性触发,取决于硬件上电、固件初始化、BMC 软件调度等多因素的时间窗口。

3. 文件缺失导致组件加载失败(潜在链式故障)

从另一份日志(framework.txt)中发现了关键线索:

[00000008] ras: lua loader error : /opt/bmc/skynet/lualib/loader.lua:0: cannot open /opt/bmc/libmc/service/hica/subsys/ras/service/main.lua: No such file or directory

此错误意味着:

  • 组件的主入口文件 main.lua 缺失或路径错误;
  • 导致组件进程 无法真正启动,自然也无法向 D-Bus 注册服务;
  • 即便上层框架尝试重启,若文件仍不可用,则会持续失败。

:light_bulb: 此类问题可能是 固件打包不完整文件系统挂载异常 所致,也可能是 AC 掉电导致写入中断引发文件损坏(见持久化机制案例)。


4. AC 操作可能导致持久化数据丢失或状态混乱

根据《持久化机制常见问题》指南:

“AC后丢失 [告警],所以Sel日志显示的现象为Deassert丢失”

AC 操作等同于断电重启,若组件的状态依赖于掉电前的持久化数据,而这些数据未及时落盘或路径配置错误,则可能导致:

  • 组件进入不一致状态;
  • 启动逻辑判断失败,拒绝正常运行;
  • 出现“反复重拉仍无法恢复”的现象。

此外,搜索结果中提到:

“配置远程持久化的数据修改后立即AC掉电,数据未落盘”

说明:在 AC 前若恰逢关键配置未持久化完成,将导致状态丢失,进而影响启动逻辑


:hammer_and_wrench: 定位与解决建议

问题类型 定位方法 解决建议
DBus服务注册失败 检查 framework.log 中对应组件是否有 LAUNCH 日志;检查 main.lua 是否执行 在组件 main.lua 中使用 pcall() 包裹初始化逻辑,并添加异常打印
组件文件缺失 查看 lua loader error 类日志;确认 /opt/bmc/libmc/service/.../main.lua 是否存在 检查固件包完整性;避免在 AC 过程中写入关键文件;启用安全写入机制
certificate 初始化阻塞 分析 certificate_mgmt 日志;检查是否依赖网络或加密模块 优化初始化超时机制;引入异步启动策略;确保依赖项优先就绪
AC 时序缺陷 对比不同 AC 周期的日志;测试延迟设置前后差异 增加关键组件的依赖等待机制;在 launch_control.json 中配置高可用组件启动顺序
持久化失败 检查 /data/trust/persistence.local 目录权限及写入日志 配置 secbox.cfg 中的 CAP_DAC_OVERRIDE 权限;确保复杂类型属性修改后重新赋值

:white_check_mark: 最佳实践建议

  1. 完善组件健康检查机制

    • 使用 maca 的健康监控机制,设定合理的重试次数与退避策略;
    • 设置最大 BMC 复位次数(默认为3次),避免无限重启。
  2. 优化 AC 启动流程

    • launch_control.json 中明确关键组件(如 bioscertificate)为“高可用组件”,强制优先加载;
    • 对于 PCIe、RAID 等依赖主机启动的设备,应监听 OS Ready 信号后再启动注册流程。
  3. 增强可观测性

    • 增加 init.lua 中的详细日志输出,尤其是 StartupCheck 阶段;
    • 收集 app.logframework.logjournalctl.log 三类日志联合分析。
  4. 规避 AC 掉电风险

    • 禁止在关键数据写入过程中执行 AC;
    • 使用“软重启”代替 AC 测试,减少硬件波动影响。

:pushpin: 结论

25.930 版本下进行 AC 长期稳定性测试时出现的组件批量异常问题,根本原因在于:

:red_exclamation_mark: AC 上电时序缺陷 + 组件服务注册竞争 + 可能的文件缺失/持久化失败 共同导致了 D-Bus 服务无法注册,从而引发 StartupCheck Failed

建议采取以下措施:

  • 优化组件启动依赖顺序;
  • 强化文件系统与持久化写入可靠性;
  • launch_control.json 中配置高可用组件;
  • 提高日志可读性以便快速定位。

只有系统化解决启动时序与资源协同问题,才能彻底消除此类偶发故障。

我在基于2512版本的bmc reset长稳测试中也多次发现了组件异常失败,导致bmc重启

在长稳测试中基本是必现的,我这边在测试bmc_reset的过程中,已经发现多次组件异常重启导致bmc重启,导致长稳测试用例失败

虽然是概率性问题,但是概率很高

一键收集日志:

2512 bmc reset长稳组件异常重启.z01.txt (8 MB)
2512 bmc reset长稳组件异常重启.z02.txt (8 MB)
2512 bmc reset长稳组件异常重启.zip.txt (2.2 MB)

分卷压缩的,把后缀名txt去掉,解压 2512 bmc reset长稳组件异常重启.zip 即可

192.168.204.104_ipmi_AC_3_dump_info.7z.001.txt (9 MB)

192.168.204.104_ipmi_AC_3_dump_info.7z.002.txt (8.4 MB)

请参考下这个帖子,问题现象一致,我在本帖子的日志中同样找到了Structure needs cleaning这个报错,应该是同个原因反复AC过程中,出现服务器BMC多个组件无法启动问题