错误 #1198
VONR 视频通话拨打超过两次DU挂死
0%
描述
VONR 视频通话,多次测试观察,拨打次数超过两次,DU挂死,必现
相关的问题
历史记录
由 匿名用户 更新于 大约 2 年 之前
(gdb) bt
#0 0x0000000000466b83 in cmLListDelFrm (lCp=0x7ffe51008190, node=0x7ffe2530a200) at /root/DU/ran/DU_Alpha_Rel/src/cm/cm_llist.c:520
#1 0x0000000000d3fc67 in rgSCHSlctrStopTmr (slctrCb=0x7ffe51008020, tmrNode=0x7ffe2530a1f0) at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c:1304
#2 0x0000000000d45ea4 in rgSCHSlctrUlLcCfg (schdSpfcCb=0x7ffe51008020, ue=0x7ffe51404020, cfg=0x7ffdff156328, err=0x7ffe8c947b70)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c:4917
#3 0x0000000000c544e2 in rgSCHLvl1CmnRgrLchCfg (cell=0x7ffdfff1fd10, ue=0x7ffe51404020, dlLc=0x7ffe09694020, lcCfg=0x7ffdff156328, err=0x7ffe8c947b70)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_cmn_lvl1.c:981
#4 0x0000000000c20eaa in rgSCHLvl1CfgRgrLchCfg (cell=0x7ffdfff1fd10, ue=0x7ffe51404020, lcCfg=0x7ffdff156328, errInfo=0x7ffe8c947b70)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_cfg_lvl1.c:4598
#5 0x0000000000c96482 in rgSCHLvl1GomHndlCfgReq (instCb=0x9bd4200 <rgSchLvl1Cb>, cfg=0x7ffdff156320, errInfo=0x7ffe8c947b70, gUeCb=0x7ffe25588020)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_gom_lvl1.c:537
#6 0x0000000000c95a9e in rgSCHLvl1GomCfgReq (instCb=0x9bd4200 <rgSchLvl1Cb>, transId=..., cfgReqInfo=0x7ffdff156310, gUeCb=0x7ffe25588020)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_gom_lvl1.c:216
#7 0x0000000000c9578f in rgSCHLvl1GomHndlCfg (instCb=0x9bd4200 <rgSchLvl1Cb>, transId=..., cfgReqInfo=0x7ffdff156310, gUeCb=0x7ffe25588020)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_gom_lvl1.c:107
#8 0x0000000000cacc0b in RgUiRgrSchLvl1CfgReq (schGCb=0x9a7d4e8 <cmGCb+2216>, cfgType=0, transId=0, gUeCb=0x7ffe25588020, cfgReqInfo=0x7ffdff156310)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_lvl1.c:136
#9 0x0000000000c4c84a in rgSchLvl1ActvTsk (tskInfo=0x7ffe0344c720) at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_cmn_hdl.c:83
#10 0x0000000000ae719d in gnb_du::gnb_du_schd_lvl1_cmn_entity::process_task (this=0x7ffe00401924, p_task=0x7ffe0344c720)
at /root/DU/ran/DU_Alpha_Rel/src/du_app/gnb_mgr/build/../include/gnb_du_worker_entity.h:371
#11 0x0000000000ad8541 in gnb_du::gnb_du_worker_thread_instance::process_message (this=0x7ffe00402b24, p_task=0x7ffe0344c720, priority=0)
at /root/DU/ran/DU_Alpha_Rel/src/du_app/gnb_mgr/build/../src/gnb_du_worker_thread.cpp:420
#12 0x0000000000871292 in ngp::thread_pool<gnb_du::gnb_du_worker_thread_instance, ssTskInfo>::thread_worker::run (this=0xae27720)
at /root/DU/ran/DU_Alpha_Rel/src/du_app/gnb_mgr/build/../../../../../../ngp/include/ngp_thread_pool.h:334
#13 0x0000000000ea5877 in ngp::thread_entry_function (param=0xae27720) at /root/DU/ngp/thread/build/../src/ngp_sys_thread.cpp:110
#14 ngp::thread_start (param=0xae27720) at /root/DU/ngp/thread/build/../src/ngp_sys_thread.cpp:123
#15 0x00007ffff61e16ba in start_thread (arg=0x7ffe8c948700) at pthread_create.c:333
#16 0x00007ffff5f1741d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb) p slctrLcgCb->smplTmr
$15 = {
tmrEvent = RG_SLCTR_UL_LCG_SMPL_TMR,
tmrDistance = 1,
remTmrDistance = 1,
tmrIndx = 3,
tmrLnk = {
next = 0x7ffe09692158,
prev = 0x0,
node = 140729522364912
},
data = 140729522364864,
tmrType = RG_SLCTR_10MS_SMPL_TMR_TYPE
}
(gdb) p slctrLcgCb
$16 = (RgSchSlctrLcgCb *) 0x7ffe2530a1c0
(gdb) f 1
#1 0x0000000000d3fc67 in rgSCHSlctrStopTmr (slctrCb=0x7ffe51008020, tmrNode=0x7ffe2530a1f0) at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c:1304
1304 in /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c
(gdb) p slctrLcgCb->smplTmr.tmrLnk
No symbol "slctrLcgCb" in current context.
(gdb) f 2
#2 0x0000000000d45ea4 in rgSCHSlctrUlLcCfg (schdSpfcCb=0x7ffe51008020, ue=0x7ffe51404020, cfg=0x7ffdff156328, err=0x7ffe8c947b70)
at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c:4917
4917 in /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c
(gdb) p slctrLcgCb->smplTmr.tmrLnk
$17 = {
next = 0x7ffe09692158,
prev = 0x0,
node = 140729522364912
}
(gdb) p &slctrLcgCb->smplTmr.tmrLnk
$18 = (CmLList *) 0x7ffe2530a200
(gdb) p slctrCb->slctrSmplTmrQ[tmrNode->tmrType][7].smplTmrQ
No symbol "tmrNode" in current context.
(gdb) f 1
#1 0x0000000000d3fc67 in rgSCHSlctrStopTmr (slctrCb=0x7ffe51008020, tmrNode=0x7ffe2530a1f0) at /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c:1304
1304 in /root/DU/ran/DU_Alpha_Rel/src/5gnrsch/rg_sch_selector.c
(gdb) p slctrCb->slctrSmplTmrQ[tmrNode->tmrType][7].smplTmrQ
$19 = {
first = 0x0,
last = 0x0,
crnt = 0x0,
count = 0
}
(gdb) p slctrCb->slctrSmplTmrQ[tmrNode->tmrType][8].smplTmrQ
$20 = {
first = 0x7ffe2530a200,
last = 0x7ffe09692158,
crnt = 0x7ffe09692158,
count = 3
}
从复现的堆栈和现场信息看,视频通话时会同时创建两个同一LCG ID的两个不同DRB承载,挂断后释放,
但代码中有一个timer变量是由lcgId来访问并且初始化和运作的,因此在建立和释放中存在问题,导致访问异常挂死。
具体出现问题的逻辑还在详细查看。