【经验分享】Redfish所有接口返回500错误码问题定位

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

问题描述

Redfish所有接口返回500错误码

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:OpenUBMC2605

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. 升级新版本

  2. 等待BMC启动完成

  3. 访问redfish接口

期望结果

Redfish所有接口正常

实际结果

Redfish所有接口返回500错误码

尝试过的解决方案

回退版本

分析结论

问题现象

Redfish所有接口返回500错误码

问题分析

1、查看app日志,有redfish报错

redfish ERROR: portal_agent.lua(381): get reply falied, err=./opt/bmc/apps/redfish/service/portal_agent.lua:266: attempt to index field ‘ssl_verify’ (a nil value)

image-1783067670393-3djv9mww0

2、killall interface 并查看app日志,有redfish报错

redfish ERROR: app_preloader.lua(71): co[thread: 0x4b2ddb636790] abnormal exit, err: ./opt/bmc/lualib/route_mapper/orchestrator/orchestrator.lua:159: attempt to call a nil value, traceback: stack traceback: ./opt/bmc/libmc/lualib/mc/app_preloader.lua:71: in function ‘’ /opt/bmc/skynet/lualib/skynet.lua: in function </opt/bmc/skynet/lualib/skynet.lua:0>

image-1783067670393-zia9tg5rf

可以看出是与orchestrator下的lua文件相关

3、排除定制仓的影响:取消客户定制,重启BMC;仍然有redfish相同报错

redfish ERROR: app_preloader.lua(71): co[thread: 0x179a06b5c560] abnormal exit, err: ./opt/bmc/lualib/route_mapper/orchestrator/orchestrator.lua:159: attempt to call a nil value, traceback: stack traceback: ./opt/bmc/libmc/lualib/mc/app_preloader.lua:71: in function ‘’ /opt/bmc/skynet/lualib/skynet.lua: in function </opt/bmc/skynet/lualib/skynet.lua:0>

image-1783067670393-qnmg4mief

4、确定是rackmount仓本身的orchestrator下的lua文件问题

重新编译rackmount组件,有一条报错信息很快闪过

rackmount/interface_config/redfish/plugins/orchestrator/sensor.lua 352行有一个多余的:

经确认是社区提交 https://gitcode.com/openUBMC/rackmount/pull/1288 引入的问题,在后续提交 https://gitcode.com/openUBMC/rackmount/pull/1295 解决的

5、去掉:后重新构建版本

redfish正常,无报错

问题结论

rackmount/interface_config/redfish/plugins/orchestrator/sensor.lua 352行有一个多余的:,语法错误,导致redfish接口返回500内部错误

参考论坛帖子:开启定制化后,所有redfish接口都发不通,报错500 - 交流互助区 - openUBMC 论坛