本文主要是介绍openssl版本冲突导致的崩溃(初稿),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题现象:UniAuditToSyslog 崩溃 数据库:mysql 系统:oracle linux server
排查步骤:
进入到容器内部后
1 执行gdb
报错 command not found
2 没有gdb想着生成个core取出来看看
ulimit -c结果是0
执行ulimit -c unlimited
3 cat /proc/sys/kernel/core_pattern
发现没有这个路径,手动创建了一个后使用方案1设置了core生成的路径后。
手动运行模块后,设置的路径下生成了core文件。
(1)执行 sysctl kernel.core_pattern=core路径 命令进行修改,重启后失效
(2)在/etc/sysctl.conf中添加kernel.core_pattern=core路径;然后执行sysctl -p加载
4 结果客户反馈没法取出core文件且没有gdb
提供一个centos的gdb包 gdb-7.6.1-120.el7.x86_64
执行rpm -ivh gdb-7.6.1-120.el7.x86_64 安装失败
报错:conflicts with file from package gdb-7.6.1-114.el7.x86_64
执行yum remove gdb卸载原来的114版本
重新执行rpm -ivh gdb-7.6.1-120.el7.x86_64
执行gdb -v发现安装成功
gdb UniAuditToSysLog堆栈:
gdb UniAuditToSysLog和gdb isql的堆栈对比
而后修改makefile添加-Wl,–exclude-libs,ALL后才隐藏了libblowsnow_db.a里面所有的符号,重新编译UniAuditToSysLog替换后验证,发现模块可正常运行
这篇关于openssl版本冲突导致的崩溃(初稿)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!