【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
1、执行lsblk
2、执行lscpu | grep Architecture 提供下结果
3、需要回传下gdb core文件后的信息,获取方法如下:
一、登录对应主机,执行如下命令,发我们下结果:
cat /proc/sys/kernel/core_pattern
二、安装debuginfo方法
- 确认版本号,例如OB包的版本号是:oceanbase-ce-4.2.2.0-100010012024022719,那么对应的debuginfo包是:oceanbase-ce-debuginfo-4.2.2.0-100010012024022719.el7.x86_64.rpm 还需对应x86或者arm
- 安装方式
yum install 或 rpm -ivh debuginfo包名
3、安装包地址
4.请确认相同版本debuginfo是否安装成功,再进行下面信息收集(这点很重要!!!)
a.执行rpm -qa | grep oceanbase(确认是否同版本),在/home/admin/oceanbase目录下执行下面命令
readelf -S bin/observer | grep -E ‘symtab|debug_info’
[36] .debug_info PROGBITS 0000000000000000 33bc3a37
[42] .symtab SYMTAB 0000000000000000 650685e0
debuginfo提供调试信息,缺少它将看不到行号
symtab提供符号信息,缺少它将看不到函数名
如果gdb加载过程提示了读取observer.debug,则代表正常
5、建议使用gdb 9.1版本(尽量gdb版本>=7.10)
6、debuginfo RPM 包抽取 observer.debug
- 直接使用安装的方式。
sudo rpm -ivh rpm包名称
安装后,observer.debug 在/usr/lib/debug/home/admin/oceanbase/bin/observer.debug
如果之前安装过其他版本的debuginfo, 最后安装的替换之前安装的文件。
- 不安装,直接抽取的方式如下:
通过命令获取observer.debug 的路径。
sudo rpm2cpio rpm包名称 |cpio -t |grep observer.debug
返回路径如下:
./usr/lib/debug/home/admin/oceanbase/bin/observer.debug
获取路径后,通过命令
sudo rpm2cpio rpm包名称 |sudo cpio -idv ./usr/lib/debug/home/admin/oceanbase/bin/observer.debug
命令执行需要时间,执行后,observer.debug 在当前执行命令的目录下的 /usr/lib/debug/home/admin/oceanbase/bin 目录下
然后将observer.debug copy 到如下目录。
/usr/lib/debug/home/admin/oceanbase/bin/ 或 /home/admin/oceanbase/bin
获取gdb信息:
gdb /home/admin/oceanbase/bin/observer core文件名称
–在进入交互界面之后
set logging file /home/admin/oceanbase/gdb-output
set logging on
set pagination off
set print pretty on
set print elements 0
相关指令:
bt
bt full
disas
info r
info thread
set logging off
quit
之后将gdb-output文件回传