yjshen
(长江计算_申永军)
1
// 此模板仅供参考,如果不适用可以修改
问题描述
DC 重启测试时,出现前置风扇转速传感器丢失,且日志中出现大量报错,DC不会恢复
环境信息
-
操作系统:不涉及
-
软件版本:OpenUBMC2512
-
硬件配置:920 525T
重现步骤
-
跑DC重启测试
-
每次重启查看风扇传感器,发现前置风扇传感器丢失
-
DC重启,现象不会消失,重启bmc后恢复正常
期望结果
DC重启无异常传感器丢失
实际结果
DC重启出现传感器丢失
尝试过的解决方案
[列出您已经尝试过的解决方案及结果]
分析结论
硬件背景:前置8风扇版(双转子),和后置5风扇版(单转子)
DC重启时某一圈出现如下图所示报错
后续DC重启后上面报错没有出现,风扇connectors 信息存在问题,前置8盘connect 对象只创建5个(难道认错了风扇版?)
后台风扇类型识别一直失败
答案内容由AI生成,仅供参考:
解决方案与结论
解决方案: hwproxy 组件需要在 对象添加完成 和 对象删除完成后,添加临时数据清理逻辑。这可以保证 hwproxy 组件对象在下一次加载时,都能正确获取并使用新的数据,而不会因为错误的临时数据(nil)导致访问报错。
结论:
- 根本原因:
DC重启测试触发了hwproxy组件在初始化过程中的时序问题,导致传感器对象因位置注册超时及临时数据污染而注册失败。
- 直接现象:
position在注册到资源树时超时,引发topology data not exist错误,最终导致传感器对象被删除。
- 恢复方法:重启BMC是有效的临时恢复措施,因为它清除了已损坏的内部状态。但彻底修复仍需落实上述代码层面的修改。
点击此处查看详细分析解答
好的,我已经仔细分析了您提供的上下文信息(包括知识图谱和文档片段),并将其与您描述的问题“DC重启测试时,出现前置风扇转速传感器丢失”进行了关联。请参考以下基于上下文信息的分析结果。
问题分析
根据上下文中的信息,您遇到的“DC重启测试时前置风扇转速传感器丢失”问题,其根本原因并非DC重启操作本身,而是该操作触发了底层软件组件的初始化时序问题,导致风扇传感器对象未能成功创建。
核心根因:对象注册超时与临时数据污染
根据文档片段和知识图谱中的关系,问题的核心链路如下:
- 触发条件:
system restart(系统重启)或 BMC Restart(BMC重启)是问题的触发事件。在您的场景中,DC重启 也属于系统级重启,同样会触发此问题。
- 根本原因:风扇转速传感器对象的注册过程要求
position 信息在限定时间内注册到系统的资源树中。在您的场景中(DC反复重启),该注册过程发生了 超时。
- 故障表现:由于超时,组件
hwproxy 未能及时获取到正确的拓扑数据,导致系统在二次尝试加载时读取了 错误的临时数据(nil)。
- 最终结果:读取
nil 数据导致底层脚本 chip.lua 抛出 "table index is nil" 错误,中断了对象添加流程,并最终触发 DeleteObject(删除对象)操作。因此,您在前置面板上看到的传感器就会显示为“–”或丢失。
为什么DC重启无法自行恢复,而重启BMC可以?
- DC重启无法恢复的原因:从上下文来看,问题的根因在于
hwproxy组件在进行拓扑信息初始化时,未对临时数据进行清理。这意味着,一旦在第一次DC重启过程中触发了该异常,这个错误的临时数据(nil)就在系统状态中被保留了。后续的DC重启步骤无法清除这个已损坏的内部状态,导致问题持续存在。
- 重启BMC可以恢复的原因:知识库明确指出 “重启 BMC 可恢复”。
BMC重启 或 BMC Restart 是一个更深层次的、完整的控制器复位过程。它清空了所有动态运行时的数据状态和缓存,包括那个被污染的错误临时数据。当BMC重新启动后,hwproxy组件会从一个干净的初始状态开始,重新执行风扇传感器的注册流程,从而成功创建对象,传感器恢复正常。
解决方案与结论
综合以上分析,该问题的解决方案在上下文中已明确指出:
解决方案: hwproxy 组件需要在 对象添加完成 和 对象删除完成后,添加临时数据清理逻辑。这可以保证 hwproxy 组件对象在下一次加载时,都能正确获取并使用新的数据,而不会因为错误的临时数据(nil)导致访问报错。
结论:
- 根本原因:
DC重启测试触发了hwproxy组件在初始化过程中的时序问题,导致传感器对象因位置注册超时及临时数据污染而注册失败。
- 直接现象:
position在注册到资源树时超时,引发topology data not exist错误,最终导致传感器对象被删除。
- 恢复方法:重启BMC是有效的临时恢复措施,因为它清除了已损坏的内部状态。但彻底修复仍需落实上述代码层面的修改。
yjshen
(长江计算_申永军)
6
AweiHe
(Hkzy_hewei)
7
看着是风扇1-8的类型没有识别到
没拿到fantype
2026-07-25 08:17:25.818179 thermal_mgmt NOTICE: object_manage.lua(332): add objects callback, path: /bmc/kepler/ObjectGroup/010103, life cycle id: 1, count: 20, took 69490ms, uptime: 58702 s
2026-07-25 08:17:25.819675 thermal_mgmt NOTICE: base.lua(85): Receive cooling board 010103 cooling obj complete, cur num: 2, cooling board num: 2
2026-07-25 08:17:25.820645 thermal_mgmt ERROR: object_manage.lua(337): AddObjectComplete failed, path:/bmc/kepler/ObjectGroup/010103, life_cycle_id:1, error:…hermal_mgmt/lualib/basic_cooling/cooling_device/base.lua:109: table index is nil
分发CLU sr过程中,重分配风扇id出错了
add_objects_complete_callback
update_objs_recived_status 报错了
fantype对象又依赖的是complete信号,导致对象没了
这儿得改到on_add_object去
就把这个合入带上,应该能解决
yjshen
(长江计算_申永军)
10
周末跑了200多圈,暂时没复习这个问题,后续继续再跑下