当前位置: 首页 > news >正文

linux core分析---TLS读取异常

文章目录

      • TLS概念
      • core 线程调用栈
        • 查看堆栈: bt
        • 查看所有线程堆栈:
        • core分析:
        • 锁分析
      • 代码修改:
        • thread8 f 4 (第四层堆栈) jcallback.c:186**
        • thread10 f4 SynStack.cpp:1175
        • tl_send_message 加锁修改
          • tls_table
          • 1 socket_tab加锁保护
          • 2 增加tls_table 中buse的使用
          • 3 tls_tl_read_message修改

TLS概念

TLS 协议主要用于保护网络通信中的数据安全,工作过程主要分为握手阶段和数据传输阶段,绝大多数的 TLS 通信都是基于 TCP 协议的

core 线程调用栈

命令: ./gdb 进程名称 core

查看堆栈: bt
ore was generated by `./SMGSvr'.
Program terminated with signal 6, Aborted.
#0  0x400f5170 in pthread_join () from /lib/libpthread.so.0Thread 1 (Thread 0x410dc000 (LWP 1140)):
#0  0x400f5170 in pthread_join () from /lib/libpthread.so.0
#1  0x000da0c4 in WaitForSingleObject (hHandle=-1073741826, dwMilliseconds=4294967295) at compat.cpp:213
#2  0x000b60a4 in SMGRun () at SMGManager.cpp:2488
#3  0x00016558 in MySvrMain (argc=1, argv=0xbee65e34) at SMGSvr.cpp:23
#4  0x000f1fc0 in Svrmain (argc=1, argv=0xbee65e34) at LinuxService.cpp:74
#5  0x000f1ff4 in Run (argc=1, argv=0xbee65e34) at LinuxService.cpp:79
#6  0x000f203c in main (argc=1, argv=0xbee65e34) at LinuxService.cpp:89
查看所有线程堆栈:

thread apply all bt


Thread 20 (Thread 0x5d8ff460 (LWP 1284)):
#0  0x41036e94 in nanosleep () from /lib/libc.so.6
#1  0x41064138 in usleep () from /lib/libc.so.6
#2  0x40224358 in BoardClock (lpParam=0x0) at shssm.cpp:891
#3  0x400f3e64 in start_thread () from /lib/libpthread.so.0
#4  0x4106a588 in ?? () from /lib/libc.so.6
#5  0x4106a588 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 19 (Thread 0x4524b460 (LWP 1266)):
#0  0x41036e94 in nanosleep () from /lib/libc.so.6
#1  0x41064138 in usleep () from /lib/libc.so.6
#2  0x433aa6dc in thread_start_handle_msg (arg=0x0) at octvoc.c:10682
#3  0x400f3e64 in start_thread () from /lib/libpthread.so.0
#4  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
#5  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 18 (Thread 0x44236460 (LWP 1264)):
#0  0x41036e94 in nanosleep () from /lib/libc.so.6
#1  0x41064138 in usleep () from /lib/libc.so.6
#2  0x433aa374 in thread_start (arg=0x0) at octvoc.c:10594
#3  0x400f3e64 in start_thread () from /lib/libpthread.so.0
Thread 5 (Thread 0x597a5460 (LWP 1273)):
#0  0x400fbfb4 in #4  0x4106a588 in ?? () from /lib/libc.so.6r
ead () from /lib/libpthread.so.0
#1  0x502822cc in sock_read () from /usr/lib/libSynSip.so
#2  0x50280c7c in BIO_read () from /usr/lib/libSynSCannot access memory at address 0x0ip.so#3  0x502605f8 in ssl3_read_n () from /usr/lib/libSynSip.so
#4  0x50261454 in ssl3_read_bytes () from /usr/lib/libSynSip.so
#5  0x5025ecc8 in ssl3_read_internal () from /usr/lib/libSynSip.so
#6  0x5025ed54 in ssl3_read () from /usr/lib/libSynSip.so
#7  0x50243024 in SSL_read () from /usr/lib/libSynSip.so
#8  0x501753b8 in tls_tl_read_me#5  0x4106a588 in ?? () from /lib/libc.so.6s
sage (osip_fdset=0x597a4cc8) at eXtl_tls.c:1009
#9  0x501f7554 in SipSocketReadMessage (max_message_nb=1, sec_max=0, usec_max=100000) at udp.c:3097Cannot access memory at address 0x0
#10 0
x501fcaf8 in SipStackInternalBacktrace stopped: previous frame identical to this frame (corrupt stack?)C
heckTimer () at SynConf.cpp:412
#11 0x5020fd64 in SipStackScheduleThread (arg=0x0) at SynStack.cpp:578
#12 0x400f3e64 in start_thread ()from /lib/Thread 17 (Thread 0x65c88460 (LWP 1327)):l
ibpthread.so.0
#13 0x4106a588 in ?? () from /lib/libc.so.6
#0  0x400fadd4 in do_futex_wait () from /lib/libpthread.so.0
#1  0x400faea0 in sem_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#2  0x000ded04 in WaitSemaphore (hSemaphore=2, dwMilliseconds=0) at compat.cpp:2501
#3  0x000b37e4 in OnDiskWork (arg=0x0) at SMGManager.cpp:1254
#4  0x400f3e64 in start_thread () from /lib/libpthread.so.0
#5  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
#6  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 16 (Thread 0x66488460 (LWP 1328)):
#0  0x41036e94 in nanosleep () from /lib/libc.so.6
#1  0x41064138 in usleep () from /lib/libc.so.6
#2  0x0004993c in ProcessOtherThing (arg=0x0) at ChManger.cpp:5420
#3  0x400f3e64 in start_thread () from /lib/libpthread.so.0
#4  0x4106a588 in ?? () from /lib/libc.so.6
#5  0x4106a588 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 15 (Thread 0x5ceff460 (LWP 1283)):
#0  0x400fba04 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x400f6244 in pthread_mutex_lock () from /lib/libpthread.so.0
#2  0x501cc9e0 in osip_mutex_lock (_mut=0x1486ca20) at port_sema.c:194
#3  0x502099d0 in SipStackInternalLock () at Synsip.cpp:37
#4  0x5020145c in SynSipEventGetEvent (dwSec=0, dwMilliSec=50, phEvent=0x5cefedb0) at SynEvent.cpp:344
#5  0x4029e964 in CbSynSipEventGetEvent (dwSec=0, dwMilliSec=50, phEvent=0x5cefedb0) at SipExport.cpp:2173
#6  0x402c4cb4 in ProcessSipEvent () at SipLogical.cpp:2644
#7  0x402a7020 in SipEventHandleThread (lpParam=0x0) at SipInterface.cpp:1384
#8  0x400f3e64 in start_thread () from /lib/libpthread.so.0
#9  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
#10 0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 14 (Thread 0x6446b460 (LWP 1321)):
#0  0x400fba04 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x400f6244 in pthread_mutex_lock () from /lib/libpthread.so.0
#2  0x4041cd28 in EnterCriticalSection (cri_mutex=0x40c6ec44 <csSipGlobalLock>) at compat.cpp:1072
#3  0x401ce804 in SmartLock::SLock (this=0x64468e2c) at SipExport.h:34
#4  0x402a91b0 in SipIcHangup (pCh=0x46ceac08) at SipInterface.cpp:2040
#5  0x403786d8 in SsmHangup (ch=448) at ssmapi.cpp:12101
#6  0x000e452c in CtiHangup (nCh=448) at CtiOp.cpp:2402
#7  0x0007f650 in IPHandleCallOutCh (pgwCh=0x606e6f08) at ChManger.cpp:19338
#8  0x00069a7c in HandleCallOutCh (pgwCh=0x606e6f08) at ChManger.cpp:13744
#9  0x0006befc in IPChStateChange (nCh=448, nDriverState=0) at ChManger.cpp:14656
#10 0x00058e94 in ChStateChange (nCh=448, nState=0) at ChManger.cpp:9734
#11 0x00058dd8 in ChStateChange (nCh=448, nState=0, nAppend=24, dwParam=9830400) at ChManger.cpp:9719
#12 0x000e89c0 in ChStateOp (nCh=448, nState=0, nAppend=24, dwParam=9830400) at CtiOp.cpp:3877
#13 0x000e7860 in SynwayEventCallback (pEvent=0x6446ad90) at CtiOp.cpp:3928
#14 0x4018cbc4 in EventCallbackProcA (lpParameter=0x0) at event.cpp:3539
#15 0x400f3e64 in start_thread () from /lib/libpthread.so.0
#16 0x4106a588 in ?? () from /lib/libc.so.6
#17 0x4106a588 in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 13 (Thread 0x5a05f460 (LWP 1274)):
#0  0x400fba04 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x400f6244 in pthread_mutex_lock () from /lib/libpthread.so.0
#2  0x501cc9e0 in osip_mutex_lock (_mut=0x1486ca20) at port_sema.c:194
#3  0x502099d0 in SipStackInternalLock () at Synsip.cpp:37
#4  0x501fcb48 in SipCheckTimerOut () at SynConf.cpp:419
#5  0x5020fe18 in SipStackTmOutThread (arg=0x0) at SynStack.cpp:594
#6  0x400f3e64 in start_thread () from /lib/libpthread.so.0
#7  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
#8  0x4106a588 in ?? () from /lib/libc.so.6
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)Thread 12 (Thread 0x5ea0e460 (LWP 1286)):
#0  0x400fba04 in __lll_lock_wait () from /lib/libpthread.so.0
#1  0x400f6244 in pthread_mutex_lock () from /lib/libpthread.so.0
#2  0x501cc9e0 in osip_mutex_lock (_mut=0x1486ca20) at port_sema.c:194
#3  0x502099d0 in SipStackInternalLock () at Synsip.cpp:37
#4  0x50208560 in SynSipMsgTerminatedCall (dwCallID=398821, dwDialogID=398822) at SynMsg.cpp:1066
http://www.lryc.cn/news/540334.html

相关文章:

  • SpringBoot 排除一些包的注入
  • PHP Composer:高效项目依赖管理工具详解
  • 第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)
  • 【设计模式精讲】创建型模式之工厂方法模式(简单工厂、工厂方法)
  • python:多重继承、MRO(方法解析顺序)
  • Oracle RAC数据库单节点轮流重启
  • 电脑想安装 Windows 11 需要开启 TPM 2.0 怎么办?
  • Vue 3 中如何注册全局自定义组件:一个 SVG 图标的例子
  • SpringBoot+Vue3-学习笔记
  • 银河麒麟系统安装mysql5.7【亲测可行】
  • 为什么WP建站更适合于谷歌SEO优化?
  • ue----git局域网内部署裸仓库,别的机器进行访问
  • leetcode876.链表的中间结点
  • 旧手机热点无法提供ipv6解决方法(emui 8 热点提供ipv6)
  • 解决DeepSeek服务器繁忙问题的实用指南
  • 新数据结构(12)——代理
  • 记一次一波三折的众测SRC经历
  • Laravel从入门到上云
  • 【小游戏】C++控制台版本俄罗斯轮盘赌
  • 【前端】使用WebStorm创建第一个项目
  • 前后端项目部署服务器(传统部署和Docker部署)
  • C++,设计模式,【工厂方法模式】
  • golang--字符串处理(rune类型)
  • 如何通过AI优化敏捷开发中的任务管理与分配?
  • 第1章大型互联网公司的基础架构——1.11 消息中间件技术
  • FlutterAssetsGenerator插件的使用
  • EasyExcel 自定义头信息导出
  • 网络运维学习笔记 012网工初级(HCIA-Datacom与CCNA-EI)某机构新增:GRE隧道与EBGP实施
  • 【系列专栏】银行IT的云原生架构-存储架构-数据库部署 10
  • Python 爬虫selenium