项目

一般

简介

错误 #2246

网管版本测试,在线升级PRU0和PRU1,第一个PRU升级完成后后界面显示100%,第二个PRU升级一直卡在91.06%

杨 凯11 个月 之前添加. 更新于 11 个月 之前.

状态:
已解决
优先级:
普通
指派给:
开始日期:
2024-10-15
计划完成日期:
% 完成:

0%

预期时间:

描述

问题描述:
在线升级PRU0和PRU1,第一个PRU升级完成后后界面显示100%,第二个PRU升级一直卡在91.06%
问题版本:
YZMM2.0.12Pre1T3


文件

解决卡顿验证结果.jpg (197 KB) 解决卡顿验证结果.jpg 杨 凯, 2024-10-21 14:01

历史记录

#1

林 万江 更新于 11 个月 之前

  • 状态新建 变更为 进行中
#2

马 党旗 更新于 11 个月 之前

  • 状态进行中 变更为 转测试
  • 指派给马 党旗 变更为 杨 凯

原因是
1. oam-backend在计算多模块升级状态计数器逻辑问题,导致流程只要有一个模块升级状态为end时,当统计数达到相应的模块个数后停止统计(此统计流程是错误的)
2. 对于非gnb包安装不应该重启gnb-agent,但是oam-backend没有做相应的逻辑判断

修改后的代码为(部分代码):

// 异步通知logMan安装gnb-agent
succCounter := 0
for i := 0; i < int(expired); i++ {
succCounter = 0
time.Sleep(1 * time.Second)
for _, rv := range rMkey {
res, _ := global.RedisClient.HGet(context.TODO(), rkey, rv).Result()
rtmp := entity.RedisSoftwareVersionManage{}
err = json.Unmarshal([]byte(res), &rtmp)
if err nil && rtmp.Status "end" {
succCounter += 1
}
}
if succCounter == len(rMkey) {
break
}
}
if succCounter != len(rMkey) {
for _, rv := range rMkey {
rvj, _ := json.Marshal(entity.RedisSoftwareVersionManage{
Result: "failed", StartTime: localtime, TimeOut: localtime + int64(expired), Status: "end", Message: global.Message[1035],
})
global.RedisClient.HSet(context.TODO(), rkey, rv, string(rvj))
}
return
}
if module  "gnb" || module  "gnb-pkg" {
clearNeBackupDirectory(ne.IP) // 清理备份目录
} else {
return
}
#3

杨 凯 更新于 11 个月 之前

多pru测试验证中

#4

杨 凯 更新于 11 个月 之前

网管侧backend已处理,三个PRU同时勾选升级,中途不重启agent已实现,未出现进度条卡顿。

导出 Atom PDF