问题背景
openUBMC版本:25.12 LTS
触发条件:对挂在RAID下的硬盘进行热插拔,将槽位5的盘移动到槽位2
现象:RefDrives无法更新,导致上层应用对RAID所属硬盘显示错误
初步定位
查看资源树
~ ~ # mdbctl lsprop Controller_1_0101010502 | grep RefDrives
RefDrives=["Disk8","Disk11","Disk5"]
~ ~ # mdbctl lsprop Controller_1_0101010502 | grep RefDrives
RefDrives=["Disk11","Disk5","Disk8"]
~ ~ # mdbctl lsprop Controller_1_0101010502 | grep RefDrives
RefDrives=["Disk11","Disk5","Disk8"]
~ ~ #
~ ~ # busctl --user --no-pager introspect bmc.kepler.storage /bmc/kepler/Systems/1/Storage/Controllers/Controller_1_0101010502 | grep RefDrives
.RefDrives property as 3 "Disk11" "Disk2" "Disk8" emits-change
~ ~ # mdbctl lsprop Controller_1_0101010502 | grep RefDrives
RefDrives=["Disk11","Disk2","Disk8"]
使用mdbctl查看RefDrives为插拔之前的值,使用busctl查看为插拔之后更新的值,随后mdbctl查看到的值也更新了
如果不调用busctl或者重启BMC,RefDrives一直不更新
查看代码日志
RefDrives为一个普通属性,不用于CSR也没有持久化

对赋值后的结果添加打印,日志如下
2026-05-09 16:46:37.661600 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:46:41.769124 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:46:58.294568 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:47:04.009305 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:47:18.352426 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:47:28.360889 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:47:38.543354 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:47:48.998988 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:47:58.575422 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:48:19.195964 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:48:22.197302 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:48:39.248148 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk5","Disk8"]
2026-05-09 16:48:44.927298 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:48:59.453150 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk8"]
2026-05-09 16:49:08.092630 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:49:19.480836 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk8"]
2026-05-09 16:49:28.542248 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:49:40.051931 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:49:52.215831 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:50:00.102802 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:50:12.696255 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:50:20.292117 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:50:35.922655 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:50:40.800367 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:50:58.661171 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:51:00.991500 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:51:21.152493 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:51:33.449174 storage NOTICE: controller_object.lua(890): RefDrives: []
2026-05-09 16:51:41.641010 storage NOTICE: controller_object.lua(890): RefDrives: ["Disk11","Disk2","Disk8"]
2026-05-09 16:51:53.907756 storage NOTICE: controller_object.lua(890): RefDrives: []
可以看到从组件代码来看,RefDrives值是正常更新了,且是每20秒刷新一次,但资源树和上层应用看到的仍然是旧值
求助内容
资源树上property值的同步属于framework的内容,想请问出现这种情况可能是什么原因以及如何解决


