AC下电再上电,"ipmitool sel list"无"System Boot"日志

// 此模板仅供参考,如果不适用可以修改

问题描述

AC下电再上电,"ipmitool sel list"无"System Boot"日志:

this is 1 cycle sel log (incremental):

1 | 04/29/2026 | 08:48:06 | Event Logging Disabled Event_Log | Log area reset/cleared | Asserted

2 | 04/29/2026 | 08:48:50 | System ACPI Power State ACPI_State | S5/G2: soft-off | Asserted

3 | 04/29/2026 | 08:52:24 | Drive Slot / Bay DISK31_Status | Drive Present | Asserted

4 | 04/29/2026 | 08:52:24 | Drive Slot / Bay DISK35_Status | Drive Present | Asserted

5 | 04/29/2026 | 08:52:25 | Drive Slot / Bay DISK32_Status | Drive Present | Asserted

6 | 04/29/2026 | 08:52:25 | Drive Slot / Bay DISK27_Status | Drive Present | Asserted

7 | 04/29/2026 | 08:52:29 | Drive Slot / Bay DISK30_Status | Drive Present | Asserted

8 | 04/29/2026 | 08:52:29 | Drive Slot / Bay DISK29_Status | Drive Present | Asserted

9 | 04/29/2026 | 08:52:29 | Drive Slot / Bay DISK26_Status | Drive Present | Asserted

a | 04/29/2026 | 08:52:30 | Drive Slot / Bay DISK24_Status | Drive Present | Asserted

b | 04/29/2026 | 08:52:30 | Drive Slot / Bay DISK34_Status | Drive Present | Asserted

c | 04/29/2026 | 08:52:30 | Drive Slot / Bay DISK28_Status | Drive Present | Asserted

d | 04/29/2026 | 08:52:30 | Drive Slot / Bay DISK25_Status | Drive Present | Asserted

e | 04/29/2026 | 08:52:31 | Drive Slot / Bay DISK33_Status | Drive Present | Asserted

f | 04/29/2026 | 08:52:37 | Drive Slot / Bay DISK11_Status | Drive Present | Asserted

10 | 04/29/2026 | 08:52:37 | Drive Slot / Bay DISK7_Status | Drive Present | Asserted

11 | 04/29/2026 | 08:52:37 | Drive Slot / Bay DISK16_Status | Drive Present | Asserted

12 | 04/29/2026 | 08:52:38 | Drive Slot / Bay DISK18_Status | Drive Present | Asserted

13 | 04/29/2026 | 08:52:38 | Drive Slot / Bay DISK12_Status | Drive Present | Asserted

14 | 04/29/2026 | 08:52:38 | Drive Slot / Bay DISK2_Status | Drive Present | Asserted

15 | 04/29/2026 | 08:52:39 | Drive Slot / Bay DISK4_Status | Drive Present | Asserted

16 | 04/29/2026 | 08:52:40 | Drive Slot / Bay DISK13_Status | Drive Present | Asserted

17 | 04/29/2026 | 08:52:40 | Drive Slot / Bay DISK14_Status | Drive Present | Asserted

18 | 04/29/2026 | 08:52:40 | Drive Slot / Bay DISK15_Status | Drive Present | Asserted

19 | 04/29/2026 | 08:52:41 | Drive Slot / Bay DISK0_Status | Drive Present | Asserted

1a | 04/29/2026 | 08:52:42 | Drive Slot / Bay DISK20_Status | Drive Present | Asserted

1b | 04/29/2026 | 08:52:42 | Drive Slot / Bay DISK8_Status | Drive Present | Asserted

1c | 04/29/2026 | 08:52:42 | Drive Slot / Bay DISK9_Status | Drive Present | Asserted

1d | 04/29/2026 | 08:52:42 | Drive Slot / Bay DISK10_Status | Drive Present | Asserted

1e | 04/29/2026 | 08:52:43 | Drive Slot / Bay DISK23_Status | Drive Present | Asserted

1f | 04/29/2026 | 08:52:43 | Drive Slot / Bay DISK6_Status | Drive Present | Asserted

20 | 04/29/2026 | 08:52:43 | Drive Slot / Bay DISK21_Status | Drive Present | Asserted

21 | 04/29/2026 | 08:52:43 | Drive Slot / Bay DISK1_Status | Drive Present | Asserted

22 | 04/29/2026 | 08:52:44 | Drive Slot / Bay DISK3_Status | Drive Present | Asserted

23 | 04/29/2026 | 08:52:44 | Drive Slot / Bay DISK5_Status | Drive Present | Asserted

24 | 04/29/2026 | 08:52:44 | Drive Slot / Bay DISK19_Status | Drive Present | Asserted

25 | 04/29/2026 | 08:52:45 | Drive Slot / Bay DISK22_Status | Drive Present | Asserted

26 | 04/29/2026 | 08:52:45 | Drive Slot / Bay DISK17_Status | Drive Present | Asserted

27 | 04/29/2026 | 08:52:53 | Power Supply PS2_Status | Power Supply AC lost | Asserted

28 | 04/29/2026 | 08:52:54 | Power Supply PS2_Status | Presence detected | Asserted

29 | 04/29/2026 | 08:53:02 | Processor #0x50 | Presence detected | Asserted

2a | 04/29/2026 | 08:53:05 | Drive Slot / Bay DISK50_Status | Drive Present | Asserted

2b | 04/29/2026 | 08:53:12 | System ACPI Power State ACPI_State | S0/G0: working | Asserted

2c | 04/29/2026 | 08:53:17 | Memory #0x7d | Presence Detected | Asserted

2d | 04/29/2026 | 08:53:17 | Memory #0x7c | Presence Detected | Asserted

2e | 04/29/2026 | 08:53:17 | Memory #0x7e | Presence Detected | Asserted

2f | 04/29/2026 | 08:53:18 | Memory #0x80 | Presence Detected | Asserted

查看日志发现:AC后,GetSysRstDetected信号来的时候,相关的sel对象还没注册好,导致缺少了这条sel

环境信息

  • 12.30

期望结果

正常情下AC下电再上电,"ipmitool sel list"有"System Boot"日志

复现步骤

1.AC下电再上电

2.os起来后查看ipmitool sel list无"System Boot"日志

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

总结

项目 内容
问题现象 AC重启后SEL日志缺失“System Boot”事件
根本原因 fructrl组件初始化晚于系统复位信号到达,导致事件对象未注册成功
技术依据 日志中出现“No need to process fructrl changes because boot not exist”错误
影响范围 系统启动事件统计不准确,影响诊断与运维自动化
解决方案 优化启动顺序、增加事件缓存与补报机制
验证方式 重复AC操作,确认SEL日志稳定输出“System Boot”条目

建议将此类问题纳入版本发布前的AC重启稳定性测试项,以确保在各种负载和配置下均能可靠生成SEL事件。

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

AC下电再上电操作后SEL日志缺失“System Boot”事件的问题分析

问题描述

在执行AC下电再上电(AC cycle)操作后,通过命令 ipmitool sel list 查询系统事件日志(SEL),发现缺少“System Boot”启动事件记录。日志序列中仅显示电源状态变化、设备在位等信息,但未记录关键的“System Boot”事件。

典型的SEL日志内容如下:

  • S5/G2: soft-off:系统进入软关机状态
  • 多个Drive Present:磁盘设备检测到
  • S0/G0: working:系统进入工作状态
    缺失关键的 System Boot | Initiated SysRestart | System Restart 事件。

此问题影响系统启动行为的审计与故障排查,可能导致无法准确判断系统的实际启动次数和时机。


根本原因分析

根据日志分析,该问题的根本原因是:在AC重启过程中,系统复位检测信号 GetSysRstDetected 到来时,负责处理SEL事件的fructrl组件尚未完成初始化,相关的SEL事件对象还未注册完成,导致“System Boot”事件未能被正确生成并写入SEL日志。

详细分析如下:

1. 时间线证据支持延迟初始化问题

从提供的系统日志片段可以看出:

  • 06:55:26.355:组件开始加载对象(add objects)。
  • 06:55:27.006:传感器组件(sensor)完成对象添加。
  • 06:55:27.275:出现错误日志:

    sensor ERROR: sel_management.lua(1387): No need to process fructrl changes because boot not exist.

该错误明确表明,在尝试处理fructrl(上电控制模块)的状态变更时,系统认为本次启动事件不存在或无效,原因是相关对象尚未准备就绪。

2. fructrl组件初始化延迟导致事件丢失

fructrl 是openUBMC系统中负责上下电控制的关键服务。它不仅控制电源操作,还负责触发“System Boot”这一关键SEL事件。当AC上电时,BMC需要在第一时间捕获复位信号并协同fructrl生成启动事件。

然而,由于以下原因导致其响应延迟:

  • BMC系统启动过程中各模块启动有先后顺序。
  • fructrlsensor等模块需动态加载SR配置文件中的对象。
  • 在复杂系统中,对象注册耗时较长(日志中显示为数千毫秒级)。

若硬件复位信号早于fructrl完成初始化到达,就会出现事件捕获窗口期错配,从而导致“System Boot”事件丢失。


相关背景与技术支持

1. SEL日志中“System Boot”事件的重要性

  • “System Boot”事件是IPMI标准SEL日志中的关键条目,标识一次系统启动的开始。
  • 它通常由BMC在检测到系统复位(如PWRGD、RST#信号)后主动产生。
  • 缺失此事件会影响:
    • 启动次数统计准确性
    • 故障定位中对启动阶段的判断
    • 自动化运维脚本的正确性(如基于SEL分析系统健康)

2. openUBMC系统中的上下电机制

  • fructrl 模块是上下电逻辑的核心,提供ACCyclePowerCycle等操作接口。
  • 其依赖多个组件对象(如PowerButton, PGSignal, FruCtrl)完整注册后才能正常工作。
  • 如搜索结果文档【上下电常见问题定位指导】中指出:

    “fructrl要提供上下电功能必须有FruCtrl/PGSignal/PowerButton/ThermTrip/RecordFault对象,缺少任意对象则无法提供上下电功能”。

同理,如果这些对象未及时注册,不仅影响控制功能,也会影响事件上报逻辑。


解决建议

:white_check_mark: 推荐解决方案:优化模块启动顺序与事件延迟处理机制

  1. 确保fructrlsensor组件优先加载

    • 在系统启动阶段,提升fructrl服务的优先级,使其在早期即完成初始化。
    • 可通过服务依赖配置(如systemd或BMC内部启动管理器)实现。
  2. 增加复位信号的暂存与重试机制

    • fructrl未就绪时,BMC可暂时缓存GetSysRstDetected信号。
    • fructrl初始化完成后,主动补发“System Boot”事件。
  3. 引入启动事件延迟注册补偿机制

    • sel_management.lua中增加对早期复位信号的检测逻辑。
    • 即使启动事件未能第一时间生成,也可在组件初始化完成后,回溯时间戳补录该事件。

:magnifying_glass_tilted_left: 调试建议

  1. 检查fructrl对象是否成功注册

    • 搜索日志中关键字:
      add objects completely
      Objects .* in objs_bef_init distribute failed
      
    • 确认FruCtrl, PowerButton, PGSignal等关键类是否成功加载。
  2. 比对AC上电时间点与模块初始化时间

    • 记录GetSysRstDetected信号时间。
    • 查看fructrlsensor模块完成初始化的时间。
    • 若前者早于后者,则存在事件丢失风险。
  3. 开启BMC完整日志追踪

    • 使用mdbctl traceipmi start file bt开启IPMI通信追踪。
    • 检查/tmp/ipmi.txt是否存在交互记录,辅助判断通信路径是否通畅。

总结

项目 内容
问题现象 AC重启后SEL日志缺失“System Boot”事件
根本原因 fructrl组件初始化晚于系统复位信号到达,导致事件对象未注册成功
技术依据 日志中出现“No need to process fructrl changes because boot not exist”错误
影响范围 系统启动事件统计不准确,影响诊断与运维自动化
解决方案 优化启动顺序、增加事件缓存与补报机制
验证方式 重复AC操作,确认SEL日志稳定输出“System Boot”条目

建议将此类问题纳入版本发布前的AC重启稳定性测试项,以确保在各种负载和配置下均能可靠生成SEL事件。

ShenZhouKunTai_S920S21_2102315PFSP0S3100161_20260507-1308.tar (9.7 MB)

以上为日志信息