欢迎来到 openUBMC 社区
Hey @shellcheng , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 说明文档 或 论坛 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。
联系指引
有疑问可以联系 SIG: sig-interface ,
维护者是: @DataSculptor, @WeliveWelove, @aaronlee, @huanghan ,
优秀贡献者是: @L_Ling, @PLUS_ONE, @yelvsub .


Issue 工作流介绍
社区的需求和缺陷的工作流状态处于纳管中。
| 类型 | 上个状态 | 下个状态 | 评论命令 | 谁可以操作 |
|---|---|---|---|---|
| 需求 | 待办的 | 已接纳 | /todo2accepted | SIG组: sig-release-management (maintainer) |
| 需求 | 已接纳 | 开发中 | /accepted2developing | 仓库成员角色: Maintainer, Committer, Contributor, Owner |
| 需求 | 开发中 | 待验收 | /developing2UAT | 仓库成员角色: Maintainer, Committer, Contributor, Owner |
| 需求 | 待验收 | 已完成 | /UAT2done | SIG组: sig-QA (maintainer,committer) |
| 需求 | 待办的 | 已挂起 | /todo2suspended | SIG组: sig-release-management (maintainer) |
| 需求 | 已挂起 | 已接纳 | /suspended2accepted | SIG组: sig-release-management (maintainer) |
| 需求 | 待办的 | 已拒绝 | /todo2rejected | SIG组: sig-release-management (maintainer) |
| 需求 | 已拒绝 | 已接纳 | /rejected2accepted | SIG组: sig-release-management (maintainer) |


PR #1458 回顾分析: 【e7b9dd1b8e4aa7dd0e69d467ca66d844】feat:支持HBM介质健康风险北向接口
仓库: openUBMC/rackmount
分支: main_dt1 → main
合并时间: 2026-08-20 15:16
作者: wangxiaoyang1
注:
get-ai-review未检索到 OpenClaw AI 检视记录(返回空)。本回顾纳入三类 AI 生成内容:GitCode 平台 AI 代码审查(atomgit-bot)、规则驱动 AI 检视(openUBMC-robot,5 轮共 20 条行内意见)与 AI 一致性检视(Richardli25 账号发布的 D14-D25 维度报告)。
1. AI 检视意见追踪
| # | 来源 | AI 发现 | 后续处理 | 说明 |
|---|---|---|---|---|
| 1 | atomgit-bot 🔴/Richardli25 [阻断] | fpcmemory.lua:249 缺 or 运算符,Lua 语法错误致整个插件无法加载,波及 FDMService 既有功能(该缺陷系修复首轮 HealthBitmap 校验意见时引入) |
✅ 已采纳修复 | commit 9a62e60b(19:16)当日补上 or |
| 2 | atomgit-bot P2 | DeviceLocator 分组公式 off-by-one,与 get_npu_ras_path_by_id 映射自相矛盾 | ✅ 已采纳修复 | 最终重构 406c57c2:DeviceLocator 简化为 'Npu' .. obj.Id,公式矛盾消除 |
| 3 | atomgit-bot P2 / Richardli25 [major] | hbmhighras.json anyOf 引用未随 PR 发布的 v1_0_0(悬空引用);基础 $ref 未含 v1_1_0 | ✅ 已采纳修复 | 最终 anyOf 同时引用 v1_0_0 与 v1_1_0 |
| 4 | Richardli25 [major] | v1_1_0 schema 丢失 v1_0_0 已有 Actions(ExecuteScrubbing),小版本升级破坏向后兼容 | ✅ 已采纳修复 | 最终 hbmhighras.v1_1_0.json 保留 Actions 定义 |
| 5 | Richardli25 [major] | mdb.get_sub_objects 返回值假设错误((ok, result) 双返回不存在),PCIe 判断分支为死代码 |
✅ 已采纳修复 | 最终重构整体删除 get_pcie_card,问题以消除方式闭环 |
| 6 | openUBMC-robot R1/R2 | get_pcie_card D-Bus 调用未 pcall 保护、ObjectIdentifier[4] 无 nil/类型保护 | ✅ 已采纳修复 | a05aaf45(16:13)当日修复,后随重构彻底消除 |
| 7 | openUBMC-robot R1/R2 | obj.Id / HealthBitmap 未做类型校验即参与运算 | ✅ 已采纳修复 | 最终代码含 type(obj.Id) ~= 'number'、type(obj.HealthBitmap) ~= 'number' 校验 |
| 8 | openUBMC-robot R2 | get_npu_ras_path_by_id 中 DieIndex/CarrierBoardId 缺少 nil 保护 | ✅ 已采纳修复 | 最终代码含 obj.DieIndex == nil or obj.CarrierBoardId == nil 前置检查 |
| 9 | openUBMC-robot R1-R3.5 | get_pcie_card 硬编码 systemid=1、未用变量 pcie_cards、local ok 重复声明、返回值仅作布尔判断的 D-Bus 浪费、RAS 校验前调用顺序开销、循环内重复查询 PCIeCards |
✅ 已采纳修复 | 重构 406c57c2 删除 get_pcie_card 全函数,6 项意见一次性消除 |
| 10 | openUBMC-robot R2/R4 | Lua 5.3+ 特有运算符 //、& 可能不兼容低版本运行时 |
🔶 部分修复 | // 随重构消失;& 位运算保留(标记解决,未改代码) |
| 11 | openUBMC-robot R2/R3 | npufpc.v1_0_0.json、hwfdmservice.v1_1_0.json 中 @odata.id 的 $ref 路径(odata-v4.json)与同文件其他引用不一致 | 🔶 标记解决未改 | 代码维持现状 |
| 12 | openUBMC-robot R3.5/R4 | obj.Presence、DieIndex、CarrierBoardId 参与比较/算术前未做类型校验(D-Bus 可能返回字符串) | 🔶 标记解决未改 | 最终代码保留 obj.Presence ~= 1 直接比较,仅 Id/HealthBitmap 有校验 |
| 13 | atomgit-bot P3 | 新增 HBM 状态映射逻辑(id 换算、位掩码、pcall 分支)无单测 | ⏳ 未响应 | 本 PR 未添加任何测试文件 |
| 14 | Richardli25 [minor] | PrivilegeMap 中 NpuFPC URI 冗余挂载到 CpuFPC 实体的 ResourceURIOverrides | ⏳ 未修改 | 最终代码仍保留双实体重复挂载(权限相同,无功能影响) |
| 指标 | 结果 |
|---|---|
| AI 意见总数(独立问题,去重后) | 14 |
| 已采纳并修复 | 9 |
| 部分修复 / 标记解决维持现状 | 3 |
| 未响应 | 2 |
| 行内 diff 意见解决率(resolved) | 22/22 = 100% |
迭代时间线:PR 创建(08-19 15:30)→ 首轮 AI 5 条(15:37)→ 修复 a05aaf45(16:13)→ atomgit Critical + 一致性检视 8 问题(16:54)→ 修复 9a62e60b(19:16)→ AI 二/三/四轮共 11 条(19:21-20:28)→ 迭代修复 492601bd、54f9a7be → 最终重构 406c57c2(08-20 09:46)→ 五轮 AI 4 条全部标记解决(09:52)→ 合入(15:16)。全程 6+ 个迭代 commit,历时约 24 小时。
2. 人工检视补充
- 检视人: yelvsub (huangleisheng)、gb286907986 (guanbin)、huangrenjie(后两者为 /lgtm 流程性动作,无标签权限未生效)
- 意见概要:
- yelvsub(08-20 14:51,fpcmemory.lua:192 行内评论):"这个计算有点定制化了,业务背景是什么"——针对
CarrierBoardId * 2 + DieIndex - 1的 NPU 匹配公式。 - wangxiaoyang1(15:08 回复):"通过CarrierBoardId及DieIndex匹配NPU,区分是否多个Die"。
- yelvsub(08-20 14:51,fpcmemory.lua:192 行内评论):"这个计算有点定制化了,业务背景是什么"——针对
- 解决状态: ✅ 已回复说明(约 16 分钟响应)并 resolved;yelvsub 随后
/lgtm /approve,PR 于 8 分钟后合入。
3. 评审贴覆盖情况
评审贴链接:【已评审】Redfish接口HBMHighRAS资源新增属性承载HBM维护状态
| 评审点 | 是否涵盖 |
|---|---|
评审点1:HBMHighRAS 资源(v1_1_0)新增 HBMStatus 属性(array 只读:DeviceLocator string / MaintenanceRequired bool,权限 ReadOnly,URI /redfish/v1/Managers/{id}/FDMService/NpuFPC/HBMHighRAS) |
✅ 已涵盖 |
| 遗留问题闭环:不采用集合/links/关联方式,HBMHighRAS 作为独立资源节点直接呈现属性,DeviceLocator 采用 string 类型 | ✅ 已遵循 |
覆盖统计: 1/1
实现要点:schema(hbmhighras.v1_1_0.json 含 HBMStatus 定义)→ 映射(HBMHighRAS.json GET RspBody 经 orchestrator.fpcmemory.get_hbm_status 填充)→ 权限(PrivilegeMap NpuFPC/HBMHighRAS GET→Login)→ 挂接(NpuFPC 资源 + FDMService/HwFDMService 链接)链路完整,HealthBitmap bit0 → MaintenanceRequired 语义与设计一致。
4. 总结
- AI 检视采纳率高、响应迅速:14 个独立问题中 9 个完全修复(64%),3 个部分修复或维持现状,仅 2 个未响应;全部 22 条行内意见 resolved。开发者对每轮检视均在 1-3 小时内提交修复 commit。
- 多轮检视形成有效闭环:首轮修复过程中引入的 P0 语法错误(缺
or)在 2 小时内被平台审查与一致性检视双重捕获并当日修复;schema 版本兼容(Actions 保留、anyOf 双版本引用)等设计 major 问题全部闭环。 - 重构优于修补的收尾策略值得借鉴:开发者最终以整体删除 get_pcie_card、DeviceLocator 直取 NPU Id 的重构方式,一次性消除 6 项健壮性/性能类意见,避免了逐条打补丁。
- 人工检视聚焦业务语义:唯一行内人工意见(yelvsub 质询定制化计算的业务背景)获得即时回复说明,体现人工检视与 AI 检视的互补——AI 关注代码缺陷,人工关注设计动机。
- 建议后续关注:
&位运算依赖 Lua 5.3+ 运行时、$ref 路径风格不统一、Presence/DieIndex 等字段类型校验缺失、PrivilegeMap URI 冗余挂载,以及新增映射逻辑仍无单测覆盖。
此回顾分析由 AI (OpenClaw + GLM-5-turbo) 完成


/accepted2developing


/developing2UAT


/UAT2done


感谢您为社区贡献新需求!请按照以下提示提供详细信息,以便我们更好地理解并跟进。
所属版本
openUBMC 26.09
版本分支
openUBMC main
简要说明
HBM新内存介质故障带内隔离,支持通过北向redfish查询接口查询HBM健康风险
前置条件
BMC运行正常且OS运行正常
系统用户
运维人员、网管
主成功场景
HBM新内存介质故障带内隔离,BMC评估介质健康风险并支持通过北向redfish查询接口查询HBM健康风险
非功能需求类型
兼容性影响评估
新增功能,无兼容性问题
扩展场景(含异常场景)
不涉及
周边依赖
不涉及
约束
不涉及