项目

一般

简介

错误 #5108

V0.0.1_T07__Alpha17,终端90接入过程core dump

李 玮璇3 个月 之前添加. 更新于 大约 2 个月 之前.

状态:
已关闭
优先级:
指派给:
开始日期:
2026-04-01
计划完成日期:
% 完成:

0%

预期时间:

描述

msg3处理时崩溃崩溃堆栈如图:
(gdb) bt
#0 0x00000000008731f4 in rte_pktmbuf_lastseg (m=0x7b11000c84b94093) at /root/ueapp-deps-arm/dpdk-c-build/dpdk-stable-20.02.1/arm64-armv8a-linux-gcc/include/rte_mbuf.h:1681
#1 rte_pktmbuf_trim (len=0, m=0x15d991b80) at /root/ueapp-deps-arm/dpdk-c-build/dpdk-stable-20.02.1/arm64-armv8a-linux-gcc/include/rte_mbuf.h:1681
#2 ngPktTrim (p=p@entry=0x15d991b80, len=len@entry=0) at fwk/ngPkt/csrc/wn5gNrPsNgPktApi.c:878
#3 0x00000000008bfdc8 in wnDoRrcConnReq (rrcSetUpRqst=rrcSetUpRqst@entry=0x7f80013b30, uacNas=uacNas@entry=0x31e74e80, nasStmsi=nasStmsi@entry=0x17fac73f6) at src/l3/rrc/csrc/wn5gNrUePsRrcSetUpRqst.c:203
#4 0x00000000008c07d0 in wnTmrRrcSetUpRqstInit (nasStmsi=<optimized out>, uacNas=0x31e74e80, rrcSetUpRqst=0x7f80013b30) at src/l3/rrc/csrc/wn5gNrUePsRrcSetUpRqst.c:283
#5 wnRrcEncodeRrcSetUpRqst (rrcSetUpRqst=rrcSetUpRqst@entry=0x7f80013b30, mbufPool=mbufPool@entry=0x17f1ab580, uacNas=0x31e74e80, nasStmsi=0x17fac73f6) at src/l3/rrc/csrc/wn5gNrUePsRrcSetUpRqst.c:260
#6 0x00000000008c9a50 in wnRrcSetupReqst (rrcCb=0x31e88000, mbufPool=0x17f1ab580) at src/l3/rrc/csrc/wn5gNrUePsRrcIdleHndlr.c:821
#7 0x0000000000aa9f7c in wnCellSelHandlerD2D (cpCbRcvd=cpCbRcvd@entry=0x31e72300, data=data@entry=0x0) at src/l3/nas/csrc/wn5gNrUePsNasMmState.c:365
#8 0x0000000000ab2350 in wnNasProcessTimersMsg (mpiMsg=<optimized out>, cpCb=0x31e72300) at src/l3/nas/csrc/wn5gNrUePsNasTimers.c:25
#9 0x0000000000aaee00 in wnProcessRxNgRingMsg (cpCb=0x31e72300) at src/l3/nas/csrc/wn5gNrUePsNASRxNgRingMgr.c:123
#10 0x00000000008df558 in threadL3 (ueCb=0x31e71c30) at src/l3/rrc/csrc/yzL3Mani.c:434
#11 0x0000000000dba528 in eal_thread_loop ()
#12 0x0000007fafef77e4 in start_thread (arg=0x7ff1f4ce9f) at pthread_create.c:486
#13 0x0000007fafd7d70c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78

历史记录

#1

李 玮璇 更新于 3 个月 之前

  • 状态新建 变更为 进行中

【问题原因】msg3处理中ngPkt指针使用错误
typedef struct wnRrcSetUpReqParm {
UL_CCCH_Message_t wnUlCcchMsg; /**< variable to Ul-CCCH strct /
ngPkt *setUpReqPkt; /
*< ng Pkt to send Setup Request /
wnRrcCbP rrcCb; /
*< Ptr to rrcCb /
wnInt8 *setupReqfailToNas; /
*< flag to SetupReq Fail Info to NAS */
} wnRrcSetUpReqParmT,
*wnRrcSetUpReqParmP;
wnRrcSetUpReqParmP rrcSetUpRqst;
ngPktTrim函数的第一个值理应是个ngPkt指针,之前错误传入rrcSetUpRqst指针,实际应该是rrcSetUpRqst->setUpReqPkt
所以ngPktTrim使用了的错误的地址,错误用法下,只有在别的地址内容不符合自己使用逻辑、或者别人发现数据更改不对了、或者导致两边出现崩溃才会引起人注意;因此当多次接入内存数据多变情况下才会暴漏出来问题
【解决方案】修改正确的ngPkt指针
【测试结果】OK

#2

李 玮璇 更新于 3 个月 之前

  • 状态进行中 变更为 审视
  • 指派给李 玮璇 变更为 李 常
#3

李 常 更新于 3 个月 之前

  • 状态审视 变更为 已解决
  • 指派给李 常 变更为 李 玮璇

修改合理。

#4

李 常 更新于 2 个月 之前

  • 优先级一般 变更为
#5

高 峰 更新于 2 个月 之前

  • 状态已解决 变更为 审视
  • 指派给李 玮璇 变更为 李 常

重新审视:
1.为什么之前版本没有测试出来这个问题
2.为什么90终端出现这个问题
3.代码review

#6

李 常 更新于 2 个月 之前

1.为什么之前版本没有测试出来这个问题
--》内存相关的问题(发生场景:IRN和OUCE多次转换,UU口反复多次接入,就会发生,本问题发生在Msg3发送申请内存时)
2.为什么90终端出现这个问题
--》该case测试时,只在90终端做了测试。
3.代码review。
--》已经和老包,玮璇,做了代码review。修改合理。

#7

高 峰 更新于 2 个月 之前

如果审视没有问题,就转到正确的下一个状态吧

#8

李 常 更新于 2 个月 之前

  • 状态审视 变更为 转测试
  • 指派给李 常 变更为 周 磊

已经合入到V0.0.1_T07__Alpha18版本。请帮忙验证。

#9

周 磊 更新于 2 个月 之前

  • 状态转测试 变更为 已解决

V0.0.1_T07__Alpha18版本已验证,多轮测试未出现该挂死

#10

李 常 更新于 大约 2 个月 之前

  • 状态已解决 变更为 已关闭
  • 指派给周 磊 变更为 李 玮璇

Ok,转“已关闭”状态。

导出 Atom PDF