风扇转速传感器数值偶现异常问题分析
更新时间: 2026/05/29
在Gitcode上查看源码问题背景
- 单板类型:自研板;
- 软件版本:openUBMC 25.09;
- 涉及功能:风扇,传感器;
- 触发条件:风扇在位,刷新web页面查看风扇转速传感器。
- 业务表现:预期风扇转速正常显示;实际风扇转速传感器显示数值偶现"--"。
问题复现步骤
升级BMC、升级扩展板CPLD、插拔风扇等操作后查看风扇转速传感器数值。
关键日志信息
web页面显示: app.log如下:
定位过程
- 收集日志发现该问题由position在注册到资源树时超时引发;由于未能及时获取拓扑数据(topology data not exist),系统在二次尝试加载 Chip 资源过程中,底层脚本 chip.lua 抛出"table index is nil"错误,导致对象添加流程中断,并触发DeleteObject操作;第一次尝试: 第二次尝试,报错如下:
- 两次尝试后,报错信息不一致,需要进一步查看硬件适配仓hwproxy风扇转速配置代码,确认问题根因。
问题原因
组件hwproxy在进行拓扑信息初始化过程中,未对临时数据进行清理,导致再次加载风扇转速信息的时候,使用错误的临时数据nil,此时web页面看到的风扇转速即为"--"。
解决方案
hwproxy组件对象添加完成和对象删除完成后,添加临时数据清理,保证hwproxy组件对象都会重新添加到变量中,不会再次加载时使用错误的临时数据,导致访问报错nil。