基于25 930版本
framework.txt (1.5 MB)
答案内容由AI生成,仅供参考:
在 25.930 版本下进行 AC 长期稳定性测试时出现的组件批量异常问题,根本原因在于:
AC 上电时序缺陷 + 组件服务注册竞争 + 可能的文件缺失/持久化失败 共同导致了 D-Bus 服务无法注册,从而引发
StartupCheck Failed。
建议采取以下措施:
launch_control.json 中配置高可用组件;只有系统化解决启动时序与资源协同问题,才能彻底消除此类偶发故障。
根据提供的日志信息和上下文数据,对在 25.930 版本下进行 AC 长期稳定性测试(AC Long-Stability Test) 时偶现的多个组件启动失败问题进行综合分析与定位。
在一次 AC 上电周期中,系统启动期间出现大量组件 StartupCheck Failed 异常,主要表现为:
power_mgmt、power_strategy、thermal_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
ai_engine、bios 等。hwdiscovery 的共享内存通信失败警告:shm reply failed, path: /bmc/kepler/ObjectGroup/..., member: GetById
该问题发生在基于 25.930 版本的系统上,属于 AC 启动阶段的概率性偶发故障。
结合知识图谱与日志内容,可得出以下几点关键结论:
StartupCheck Failed 的核心报错是:
The name bmc.kepler.xxx was not provided by any .service files
这表明:虽然组件进程可能已尝试启动,但其对应的 DBus 服务名未能成功注册到系统总线,导致其他组件无法通过 D-Bus 访问它。
此类问题的常见原因包括:
main.lua 初始化逻辑;certificate 组件处于 Starting 状态,阻塞了整体初始化流程。
尤其注意:
certificate组件长时间处于“初始化未完成”状态,可能是整个系统服务注册延迟的根源之一。
文档明确指出:
“由于930版本存在丝印缓存的时序问题,因此在代码中设置AC上电额外延迟80s”
这说明 25.930 版本本身存在 AC 上电的时序缺陷,当前通过人为增加延迟来规避。这也印证了:
从另一份日志(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 缺失或路径错误;
此类问题可能是 固件打包不完整 或 文件系统挂载异常 所致,也可能是 AC 掉电导致写入中断引发文件损坏(见持久化机制案例)。
根据《持久化机制常见问题》指南:
“AC后丢失 [告警],所以Sel日志显示的现象为Deassert丢失”
AC 操作等同于断电重启,若组件的状态依赖于掉电前的持久化数据,而这些数据未及时落盘或路径配置错误,则可能导致:
此外,搜索结果中提到:
“配置远程持久化的数据修改后立即AC掉电,数据未落盘”
说明:在 AC 前若恰逢关键配置未持久化完成,将导致状态丢失,进而影响启动逻辑。
| 问题类型 | 定位方法 | 解决建议 |
|---|---|---|
| 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 权限;确保复杂类型属性修改后重新赋值 |
完善组件健康检查机制
maca 的健康监控机制,设定合理的重试次数与退避策略;优化 AC 启动流程
launch_control.json 中明确关键组件(如 bios、certificate)为“高可用组件”,强制优先加载;OS Ready 信号后再启动注册流程。增强可观测性
init.lua 中的详细日志输出,尤其是 StartupCheck 阶段;app.log、framework.log、journalctl.log 三类日志联合分析。规避 AC 掉电风险
在 25.930 版本下进行 AC 长期稳定性测试时出现的组件批量异常问题,根本原因在于:
AC 上电时序缺陷 + 组件服务注册竞争 + 可能的文件缺失/持久化失败 共同导致了 D-Bus 服务无法注册,从而引发
StartupCheck Failed。
建议采取以下措施:
launch_control.json 中配置高可用组件;只有系统化解决启动时序与资源协同问题,才能彻底消除此类偶发故障。
我在基于2512版本的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 即可
请参考下这个帖子,问题现象一致,我在本帖子的日志中同样找到了Structure needs cleaning这个报错,应该是同个原因反复AC过程中,出现服务器BMC多个组件无法启动问题