装备定制化后执行查询返回02

// 此模板仅供参考,如果不适用可以修改

问题描述

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)”]

环境信息

  • 软件版本:[OpenUBMC2603]

重现步骤

  1. 上传ini文件到bmc后台

  2. 执行raw 0x30 0x90 0x21 0xf0执行定制

  3. 一直用raw 0x30 0x90 0x22 0xef查询返回02

期望结果

返回01

实际结果

返回02,

尝试过的解决方案

回退到1230版本上验证,同一份ini文件无此问题

分析结论

初步定位redfish相关定制项导致

ini文件和log文件:

装备定制化问题.zip (9.6 KB)

我理解是装备定制化是闭源组件,不过是作为中间件,上对接ini下对接,参数是到profile_schema上

额,没有看明白,profile_schema上改如何定位呢

首先这个ini文件 导入后,执行完成后会有个tmp的结果,告诉你哪个执行失败,然后根据这个失败项去匹配profile_schema。比如这个,是因为profile_schema里面参数多了一个空格导致的,社区已经修复了。


product_mgmt 这个组件就是闭源的装备定制化部分的组件。但是最终对下应该都是profIle_schema 理论上。

1 个赞

尝试删掉profIle_schema中的BMCSet_RedfishAsyncOperationLocationHeader配置,定制成功,应该是330节点代码中有部分代码没有上到社区吧

这个是里面实现有关,你的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)