// 此模板仅供参考,如果不适用可以修改
问题描述
330版本执行装备定制化,上传ini文件,执行raw 0x30 0x90 0x21 0xf0执行定制,用raw 0x30 0x90 0x22 0xef查询返回02
日志中有一些打印,请问是否是这个报错导致,如何解决呢?
redfish ERROR: config_mgmt.lua(53): Import redfish configuration failed! err = …/bmc/apps/redfish/lualib/micro_component/config_mgmt.lua:45: bad argument #1 to ‘pairs’ (table expected, got nil)
product_mgmt NOTICE: custom.lua(682): Exception happened during customization, MessageId: CollectingConfigurationErrorDesc, MessageArgs: [“redfish(Import failed)”]
环境信息
重现步骤
-
上传ini文件到bmc后台
-
执行raw 0x30 0x90 0x21 0xf0执行定制
-
一直用raw 0x30 0x90 0x22 0xef查询返回02
期望结果
返回01
实际结果
返回02,
尝试过的解决方案
回退到1230版本上验证,同一份ini文件无此问题
分析结论
初步定位redfish相关定制项导致
ini文件和log文件:
装备定制化问题.zip (9.6 KB)
arch
(Evan(bx))
2
我理解是装备定制化是闭源组件,不过是作为中间件,上对接ini下对接,参数是到profile_schema上
额,没有看明白,profile_schema上改如何定位呢
arch
(Evan(bx))
4
首先这个ini文件 导入后,执行完成后会有个tmp的结果,告诉你哪个执行失败,然后根据这个失败项去匹配profile_schema。比如这个,是因为profile_schema里面参数多了一个空格导致的,社区已经修复了。
product_mgmt 这个组件就是闭源的装备定制化部分的组件。但是最终对下应该都是profIle_schema 理论上。
1 个赞
尝试删掉profIle_schema中的BMCSet_RedfishAsyncOperationLocationHeader配置,定制成功,应该是330节点代码中有部分代码没有上到社区吧
arch
(Evan(bx))
7
这个是里面实现有关,你的ini是装备定制化,但是没有配置的ini部分会自动执行默认装备定制化,目前执行失败要么是profile_schema对应错误,要么是中间过程有问题。
INI 没配这个项
→ 但 profile_schema 里有 CustomDefault
→ product_mgmt 按默认装备定制化把它生成进最终配置
→ 分发给 redfish 导入
→ 当前 redfish import 不认识或不能正确处理这个字段
→ 导致 config_mgmt.lua 里 pairs(nil)
→ redfish Import failed
→ 查询返回 02
redfish/1.100.19@openubmc/stable,config_mgmt.lua是字节码
一般来说不用关注默认装备定制化部分失败,可以提个issue给对接人。
非常感谢,从获取到的verify_custom_result.txt中,看到‘BMCSet_RedfishAsyncOperationLocationHeader’错误,结合之前的log”Import redfish configuration failed“来看,可能是这个定制项有问题,我的ini文件里没有这一项,它用的是默认参数
verify_custom_result.zip (3.6 KB)