项目

一般

简介

错误 #4990

网管版本2.4.1版本,先升级基站软件版本,再升级OS版本,出现OS版本上传版本问题锁

杨 凯大约 8 小时 之前添加. 更新于 大约 7 小时 之前.

状态:
转测试
优先级:
一般
指派给:
开始日期:
2026-03-09
计划完成日期:
% 完成:

0%

预期时间:

描述

网管版本2.4.1版本,先升级基站软件版本,再升级OS版本,出现OS版本上传版本提示“当前已有任务进行中”
备注:
无法上传OS版本


文件

OS版本上传问题.jpg (174 KB) OS版本上传问题.jpg 杨 凯, 2026-03-09 15:25

历史记录

#1

马 自伟 更新于 大约 7 小时 之前

  • 状态新建 变更为 进行中

问题定位:
1.先升级基站软件版本,那么redis有key:“software-version-manage:ip”会有记录,记录内容为:filed:gnb,value:{"startTime":1773038405,"timeOut":1773039005,"result":"success","status":"end","message":"","code":0}
其中,value属于json

2.升级OS时,redis使用的key依然是“software-version-manage:ip”,进行复用key,但是记录的内容,filed:status,value:end
这样的使用时,时hash方式

3.在升级OS之前,会有前置检查,目前的逻辑只记录了filed:status,value:end的方式,没有考虑到json为value的方式,导致查询status为空,无法判断是“end”,因此返回了“当前已有任务正在进行中”的错误

问题解决:
在升级OS之前的前置检查,对redis的key为“software-version-manage:ip”做出考虑json的情况

修改为:
if ($redis->keyExists($key)) {
$res = $redis->hGetAll($key);
$status = '';

// 第一种结构
if (isset($res['status'])) {
$status = $res['status'];
}
// 第二种结构
if (!$status && isset($res['gnb'])) {
$gnbInfo = json_decode($res['gnb'], true);
$status = $gnbInfo['status'] ?? '';
}
if ($status === 'end') {
$redis->del($key);
} else {
return $this->return_json([], 1, $this>stringDefine['PROMPT_MSG_83']);
}
}
#2

马 自伟 更新于 大约 7 小时 之前

  • 状态进行中 变更为 反馈
  • 指派给马 自伟 变更为 马 党旗
#3

马 党旗 更新于 大约 7 小时 之前

  • 状态反馈 变更为 审视
#4

马 党旗 更新于 大约 7 小时 之前

  • 状态审视 变更为 转测试

导出 Atom PDF