创建逻辑盘对象概率性超时问题分析
更新时间: 2026/06/02
在Gitcode上查看源码

问题背景

  • 单板类型:NA;
  • 软件版本:openUBMC 26.4.0.B001;
  • 涉及功能:逻辑盘创建,web;
  • 触发条件: web页面创建逻辑盘。
  • 业务表现:预期创建成功;实际概率性超时。

问题复现步骤

bmcweb页面创建逻辑盘

关键日志信息

web页面创建逻辑盘一直处于创建中: app.log日志如下: 日志打印显示task任务在初始状态后,10%之后,尝试创建DiskArray对象重复,然后应该是将整个线程崩掉了。但是TASK对象依然存在,也还在树上

定位过程

  1. 需要在可能存在抛错的流程中pcall,防止意外退出,没有正确更新Task的状态与进度;
  2. 这个框架提供的create_task方法第四个参数为timeout,当前没有传递,可以考虑加固传递个超时参数,这样这个任务在超时后会结束;
  3. 逻辑盘ID 阵列ID全是带内传过来的,不是BMC这边分配的,这个问题疑似时序问题,待加日志定位,这个问题的需要进一步定位解决;

问题原因

周期常规测试更新array_list的任务和创建逻辑盘触发的更新array_list的任务概率性撞上,导致冲突。

解决方案

将周期常规测试的array_list的任务和创建逻辑盘触发的更新array_list的任务放入队列后按照队列顺序执行响应的操作。

PR链接

gitcode