当前位置: 首页 > 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

相关文章:

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

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

SpringBoot 排除一些包的注入

文章目录 需求一、使用 ComponentScan 需求 在系统迭代的过程中&#xff0c;有一些 Controller 大批量的不再使用&#xff0c;或者有一些接口我们不想再提供给外界 一、使用 ComponentScan SpringBootApplication(scanBasePackages "com.zrb.excludeSomePkg") Comp…...

PHP Composer:高效项目依赖管理工具详解

PHP Composer:高效项目依赖管理工具详解 引言 随着Web开发领域的不断扩展,项目的复杂性也在逐渐增加。为了提高开发效率,减少重复劳动,依赖管理工具应运而生。其中,PHP的Composer成为了开发者们的首选。本文将详细介绍PHP Composer的功能、使用方法以及在实际开发中的应…...

第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)

重要信息 大会官网&#xff1a;www.icispp.com 大会时间&#xff1a;2025年3月28日-30日 大会地点&#xff1a;南京 简介 由河海大学和江苏大学联合主办的第四届图像、信号处理与模式识别&#xff08;ISPP 2025) 将于2025年3月28日-30日在中国南京举行。主要围绕图像信号处…...

【设计模式精讲】创建型模式之工厂方法模式(简单工厂、工厂方法)

文章目录 第四章 创建型模式4.2 工厂方法模式4.2.1 需求: 模拟发放奖品业务4.2.2 原始开发方式4.2.3 简单工厂模式4.2.3.1 简单工厂模式介绍4.2.3.2 简单工厂原理4.2.3.3 简单工厂模式重构代码4.2.3.4 简单工厂模式总结 4.2.4 工厂方法模式4.2.4.1 工厂方法模式介绍4.2.4.2 工厂…...

python:多重继承、MRO(方法解析顺序)

在 Python 中&#xff0c;当类存在多重继承时&#xff0c;方法的调用顺序由 方法解析顺序&#xff08;Method Resolution Order, MRO&#xff09; 决定。 Python 使用 C3线性化算法 来确定类的继承顺序&#xff08;MRO&#xff09;&#xff0c;其核心规则是&#xff1a; 子类优…...

Oracle RAC数据库单节点轮流重启

0、sqlplus / as sysdba 备份参数文件 create pfile/home/oracle/pfile.ora from spfile; 备份控制文件 Alter database backup controlfile to trace; 1、关闭两节点的监听&#xff1b; 2、操作系统层面kill掉所有LOCALNO的所有进程&#xff0c;即&#xff1a;连接会话。 p…...

电脑想安装 Windows 11 需要开启 TPM 2.0 怎么办?

尽管 TPM 2.0 已经内置在许多新电脑中&#xff0c;但很多人并不知道如何激活这一功能&#xff0c;甚至完全忽略了它的存在。其实&#xff0c;只需简单的几步操作&#xff0c;你就能开启这项强大的安全特性&#xff0c;为你的数字生活增添一层坚固的防护屏障。无论你是普通用户还…...

Vue 3 中如何注册全局自定义组件:一个 SVG 图标的例子

Vue 3 中如何注册全局自定义组件&#xff1a;一个 SVG 图标的例子 嘿&#xff0c;小伙伴们&#xff01;今天我们来聊一下在 Vue 3 中如何注册一个全局的自定义组件。我知道有时候我们想要重复使用某些组件&#xff0c;比如说 SVG 图标&#xff0c;但不想在每个地方都重新定义。…...

SpringBoot+Vue3-学习笔记

1、SpringBoot特性 ①起步依赖&#xff0c;所有需要的依赖全部配置在一起 ②自动配置&#xff1a;遵循约定大约配置的原则&#xff0c;在boot程序启动后&#xff0c;一些bean对象会自动注入到ioc容器&#xff0c;不需要手动声明&#xff0c;简化开发 ③内嵌的Tomcat、Jetty(无…...

银河麒麟系统安装mysql5.7【亲测可行】

一、安装环境 cpu&#xff1a;I5-10代&#xff1b; 主板&#xff1a;华硕&#xff1b; OS&#xff1a;银河麒麟V10&#xff08;SP1&#xff09;未激活 架构&#xff1a;Linux 5.10.0-9-generic x86_64 GNU/Linux mysql版本&#xff1a;mysql-5.7.34-linux-glibc2.12-x86_64.ta…...

为什么WP建站更适合于谷歌SEO优化?

在当今数字时代&#xff0c;建立一个网站似乎变得容易&#xff0c;但要构建一个真正能够带来流量和订单的网站却并非易事。特别是在谷歌SEO优化方面&#xff0c;不同的建站程序在SEO支持方面的效果差异显著。对于希望提升搜索引擎表现的用户来说&#xff0c;WordPress无疑是最佳…...

ue----git局域网内部署裸仓库,别的机器进行访问

最近由于经常迁移项目到另一台机器上进行部署更新一点就要整个迁移 弄得麻烦了 就在网上学了一下这个方式 首先我们在想要建立裸仓库的电脑上找到一个文件夹放置我们的裸仓库 在此点击鼠标右键选择 open git bash here 输入命令 创裸仓库 git init --bare gitTestName.git…...

leetcode876.链表的中间结点

目录 问题描述示例提示 具体思路思路一 代码实现 问题描述 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 题目链接&#xff1a;链表的中间结点 示例 提示 链表的结点数范围是 [1, 100]   1 &…...

旧手机热点无法提供ipv6解决方法(emui 8 热点提供ipv6)

旧手机热点无法提供ipv6解决方法 手机&#xff1a;荣耀8x 系统版本: EMUI 8 网络&#xff1a;移动流量卡 解决方案 设置-》无线和网络-》移动网络-》接入点名称(APN)-》cmiot 修改 APN协议: IPv4/IPv6 修改 APN漫游协议: IPv4/IPv6...

解决DeepSeek服务器繁忙问题的实用指南

目录 简述 1. 关于服务器繁忙 1.1 服务器负载与资源限制 1.2 会话管理与连接机制 1.3 客户端配置与网络问题 2. 关于DeepSeek服务的备用选项 2.1 纳米AI搜索 2.2 硅基流动 2.3 秘塔AI搜索 2.4 字节跳动火山引擎 2.5 百度云千帆 2.6 英伟达NIM 2.7 Groq 2.8 Firew…...

新数据结构(12)——代理

什么是代理 在进行操作时有时不希望用户直接接触到目标&#xff0c;这时需要使用代理让用户间接接触到目标 给目标对象提供一个代理对象&#xff0c;并且由代理对象控制着对目标对象的引用 图解&#xff1a; 代理的目的 控制访问&#xff1a;通过代理对象的方式间接的访问目…...

记一次一波三折的众测SRC经历

视频教程和更多福利在我主页简介或专栏里 &#xff08;不懂都可以来问我 专栏找我哦&#xff09; 目录&#xff1a; 前言 波折一&#xff1a;RCE漏洞利用失败 波折二&#xff1a;SQL时间盲注 波折三&#xff1a;寻找管理后台 总结 前言 先谈个人SRC心得体会吧&#xff0c;我虽…...

Laravel从入门到上云

大家好&#xff0c;今天给大家介绍一下PHP的经典框架Laravel。 本文假定你已经安装好了PHP执行环境&#xff0c;并且使用PHP版本为PHP8.0以上。 首先&#xff0c;让我们来安装Laravel框架&#xff0c;执行命令&#xff1a;composer create-project laravel/laravel 命令执行…...

【小游戏】C++控制台版本俄罗斯轮盘赌

制作团队&#xff1a;洛谷813622&#xff08;Igallta&#xff09; 989571&#xff08;_ayaka_&#xff09; Mod&#xff1a;_ayaka_ 双人模式&#xff1a;Igallta 公告&#xff1a; 原先的9.8改名为 Alpha 1.0&#xff0c;以后每次更新都增加 0.1。 Alpha 1.11 改为 Beta 1…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...