从日志上来看,当前设备在进行 PSR 模拟重新加载操作后,Web 端“组件”页面中的所有组件均消失。
app.log.txt (2.0 MB)
请问该问题根因是什么?以前模拟加载扩展板好像也出现过
答案内容由AI生成,仅供参考:
根据社区已验证的修复(话题 #1930 PR)和实践经验,建议:
web_backend 日志:确认其启动成功并完成 InitCompleted 状态。总结:PSR 模拟重新加载操作后 Web 组件界面空白,根因是 资源树异常(模拟组件数据未持久化、加载顺序紊乱、Web Backend 初始化受阻),导致前端无法获取组件信息。此问题与模拟加载扩展板后的现象同源,建议优先通过 AC 恢复环境,并核对 CSR 配置及社区补丁解决。
根据提供的上下文信息,您所描述的“PSR 模拟重新加载操作后 Web 端组件界面空白、所有组件消失”问题,其根因可能与 资源树异常导致 Web 后端无法获取组件资源 直接相关。社区类似案例(如话题 #1930、#2932 以及模拟加载扩展板后的空白问题)均指向同一类原因。以下为详细分析:
资源树数据缺失或加载顺序错误
进行 PSR 模拟重新加载(或类似模拟加载扩展板操作)后,资源树(Resource Tree)中的组件对象可能未正确注册或持久化。Web 后端在启动时依赖资源树获取组件列表和配置信息。如果资源树状态异常(例如拓扑数据未及时到位、CSR 配置错误、Connector 加载顺序紊乱),底层脚本(如 chip.lua、pcie_device.lua)可能抛出 table index is nil 或 topo info read fail 等错误,导致组件对象添加流程中断,最终 Web 接口无法获取到任何组件数据,页面呈现空白。
插件初始化获取 AccountPolicy 资源失败
社区话题 #1930(2506 release 版本 web 概率性白屏)中明确给出了同类问题的根因与修复方案:
“插件初始化时候会执行获取AccountPolicy资源的逻辑,资源树异常时获取不到资源导致整个接口出问题”。
该修复通过调整资源树异常时的处理逻辑解决了白屏问题。您的场景(模拟重新加载后白屏)与该话题高度吻合,说明 资源树异常是导致 Web 组件界面空白的核心原因。
组件启动顺序异常或 Web Backend 未就绪
话题 #2932(AC后 BMC web 连接不上)中,web 白屏常伴随 iam 组件或 pcie_device 组件启动报错(如 There is no valid session、Get container obj failed),并指出需要等待 web_backend 组件完全拉起才能正常显示。
模拟重新加载可能打乱了组件的正常启动顺序,导致 Web Backend 未成功启动(app.log 中无 start web_backend service successfully 打印),从而无法提供组件页面数据。
您提到“以前模拟加载扩展板好像也出现过”,这进一步佐证了根因的一致性。在社区关于 模拟加载 PCIe 设备(Search Result #7)的说明中明确写道:
“模拟加载/卸载的卡不参与持久化……使用完模拟加载/卸载功能,恢复环境需要 AC”。
这意味着模拟加载操作 不将组件信息写入持久化数据库,一旦系统重启或重新加载资源树时,这些模拟组件的状态会丢失,甚至可能污染临时数据,导致剩余的真实组件也无法正确加载——最终表现为 Web 页面中的组件全部消失。
app.log 中缺少 start web_backend service successfullypcie_device ERROR: Get container obj failediam ERROR: no valid sessionweb_backend NOTICE: Startup status has changed 但后续无正常 InitCompletedframework.log 报 read topo info fail根据社区已验证的修复(话题 #1930 PR)和实践经验,建议:
web_backend 日志:确认其启动成功并完成 InitCompleted 状态。总结:PSR 模拟重新加载操作后 Web 组件界面空白,根因是 资源树异常(模拟组件数据未持久化、加载顺序紊乱、Web Backend 初始化受阻),导致前端无法获取组件信息。此问题与模拟加载扩展板后的现象同源,建议优先通过 AC 恢复环境,并核对 CSR 配置及社区补丁解决。
PSR没分发,web_backend执行报错了
busctl --user call bmc.kepler.web_backend /bmc/kepler/web_backend/MicroComponent bmc.kepler.MicroComponent.Debug SetDlogLevel a{ss}sy 3 Interface Busctl UserName Administrator ClientIp 127.0.0.1 ‘info’ 1
执行后,再点击web页面,注意看日志打印报错