项目

一般

简介

错误 #3226

[3.0产品测试]3.0.1pre1_T3,基站运行中logwriter出现coredump

黄 毅13 天 之前添加. 更新于 12 天 之前.

状态:
转测试
优先级:
普通
指派给:
开始日期:
2025-04-24
计划完成日期:
% 完成:

0%

预期时间:
问题归属:
CU
发现问题版本:
Rel_3.0.1
目标解决问题版本:
Rel_3.0.1

描述

测试版本:Rel_3.0.1_Pre1T3版本
测试设备:核心网 192.168.8.219 基站 192.168.8.233
测试用例:单用户大下行大容量下行UDP灌包
基站配置:7D2U 2T1R
测试终端:星思5.8G终端
测试场景:终端开机注册拨号,下行UDP灌包200M
问题描述:起站后logwriter出现coredump,binlog下面日志无法记录。
起站顺序,phy启动后,启动cu/du/logwriter


文件

0423_logwriter挂死.rar (285 KB) 0423_logwriter挂死.rar 黄 毅, 2025-04-24 10:34

历史记录

#1

席 振斌 更新于 13 天 之前

通过解析core文件以及结合代码分析,问题原因如下:
std::string processName = m_logRules["processName"];
if (processName != m_moduleName) {
LOG_ERROR("The module name does not match, m_moduleName=" + m_moduleName + ", processName: " + processName);
return false;
}
当m_logRules为空时,会自动插入一个空对象而非返回默认值或抛出异常。此时将空JSON对象隐式转换为std::string会导致未定义行为,可能触发崩溃或生成无效数据。
与偶现挂死的现象符合
修改方法:std::string processName = m_logRules["processName"].get<std::string>();
修改为显示转化

#2

席 振斌 更新于 13 天 之前

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

席 振斌 更新于 13 天 之前

  • 状态进行中 变更为 转测试
  • 指派给席 振斌 变更为 黄 毅
#4

席 振斌 更新于 12 天 之前

解决上一个挂死后又出现一个挂死,是因为,du输出日志太多,logwriter无法对应处理,导致在处理共享内存数据时,数据已被覆盖,内存被踩,导致调用memcpy时出现崩溃;
修改方法:在memcpy前增加判决,对要拷贝的数据长度增加上下限制,防止数据长度被踩成为一个超大值

导出 Atom PDF