创建逻辑盘对象概率性超时问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:openUBMC 26.4.0.B001;
- 涉及功能:逻辑盘创建,web;
- 触发条件: web页面创建逻辑盘。
- 业务表现:预期创建成功;实际概率性超时。
问题复现步骤
bmcweb页面创建逻辑盘
关键日志信息
web页面创建逻辑盘一直处于创建中: app.log日志如下: 日志打印显示task任务在初始状态后,10%之后,尝试创建DiskArray对象重复,然后应该是将整个线程崩掉了。但是TASK对象依然存在,也还在树上
定位过程
- 需要在可能存在抛错的流程中pcall,防止意外退出,没有正确更新Task的状态与进度;
- 这个框架提供的create_task方法第四个参数为timeout,当前没有传递,可以考虑加固传递个超时参数,这样这个任务在超时后会结束;
- 逻辑盘ID 阵列ID全是带内传过来的,不是BMC这边分配的,这个问题疑似时序问题,待加日志定位,这个问题的需要进一步定位解决;
问题原因
周期常规测试更新array_list的任务和创建逻辑盘触发的更新array_list的任务概率性撞上,导致冲突。
解决方案
将周期常规测试的array_list的任务和创建逻辑盘触发的更新array_list的任务放入队列后按照队列顺序执行响应的操作。