项目

一般

简介

错误 #2011

2.1.15p_pre1_T2版本,大上行子帧配比,10ue长跑稳定性测试,约38h,cu出现挂死

王 旭初大约一年 之前添加. 更新于 12 个月 之前.

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

0%

预期时间:
问题归属:
CU
发现问题版本:
Rel_2.1.15P
目标解决问题版本:
Rel_2.1.15P
FPGA板卡类型:
CPU类型:

描述

该问题cu已初步定位,提单跟踪

历史记录

#1

杨 杨乐 更新于 大约一年 之前

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

杨 杨乐 更新于 大约一年 之前

【现象】
运行过程中崩溃

【原因】
使用ue_conn_mgr类的函数:get_ue_conn,获取ue_conn对象,导致崩溃;原因:使用了两个容器ue_conn_list和ue_conn_ptr_list来参与,小概率的不同步出现了崩溃
1.ue_conn对象保存在:ue_conn_ptr_list中,该对象的类型为:std::map<gnb::gnb_ue_id_t, std::shared_ptr<gnb::ue_conn_ptr>>
2.key为ue_id,value为ue_conn_ptr的共享指针。类ue_conn_ptr中保存了ue_conn的指针对象;
3.在函数get_ue_conn中判断UE_ID时,使用ue_conn_list容器判断是否存在,应该使用容器ue_conn_ptr_list来判断;备注:会有一个问题:函数del_ue_conn删除对象时,ue_conn_list的删除比ue_conn_ptr_list要晚,现象:ue_conn_list判断UE_ID时存在,但是ue_conn_ptr_list已经不存在该ue_conn_ptr对象了
4.没有判断value中的指针是否为空。所以如下代码调用时崩溃了:
ue_conn_ptr* ptr = ue_conn_ptr_list[gnb_ue_id].get();
return ptr->get_ue_conn();
【解决方法】
修改代码为如下的方式:
1.使用ue_conn_ptr_list来查找对象,如下代码示:
auto iterator = ue_conn_ptr_list.find(gnb_ue_id);
2.使用前要对value判空,如下代码示:
ue_conn_ptr* ptr = ue_conn_ptr_list[gnb_ue_id].get();
return ((ptr == nullptr) ? nullptr : ptr->get_ue_conn());

【下一步计划】
多启动基站长跑几次,观察是否还有问题,如果没有问题就可以关单了

#3

杨 杨乐 更新于 大约一年 之前

  • 状态进行中 变更为 转测试
  • 指派给杨 杨乐 变更为 王 旭初
#4

王 旭初 更新于 12 个月 之前

  • 状态转测试 变更为 已解决
  • 指派给 已删除 (王 旭初)

大上行子帧配比,10ue上下行灌包,长跑14h,运行稳定无挂死,问题解决

导出 Atom PDF