【 使用环境 】测试环境
【 OB or 其他组件 】obproxy
【 使用版本 】4.2.1.0
【问题描述】OCP升级obproxy-4.2.1.0到4.2.3.0会生成一个core文件
gdb 打开core文件显示一下信息
–Type for more, q to quit, c to continue without paging–
Core was generated by `/storage/admin/obproxy/bin/obproxy -p 2883 -n wxobproxy -o server_tcp_keepcnt=2’.
Program terminated with signal SIGABRT, Aborted.
#0 0x00007fb38bc2546b in ?? ()
[Current thread is 1 (LWP 1068047)]
用obd upgrade操作obproxy的升级报的错是么?
不是,这个不是OCP自用的集群, 是用OCP单独建的obproxy集群, 只是oceanbase从4.2.1.4升级到4.2.1.7,所以才升级obproxy-4.2.1.0到4.2.3.0
gdb bt就看到了这些
你那边发一下堆栈或相关的core文件
麻烦发下使用的 obproxy-4.2.1.0 和 obproxy-4.2.3.0 的具体版本号
./obproxy -V
下载的哪个版本的 obproxy
x86/ARM ?
elf7/elf8 ?
麻烦通过
arch
uname -a
cat /etc/issue
看下
x86
Centos 7 和kylin v10 SP3 都测过,都会有这问题
el7和el8都会生成core文件
本地使用 x86, elf7 的 obproxy 均无法查看堆栈,请确认实际生成 core 的 obproxy 能否显示堆栈
gdb bin/obproxy core-[ACCEPT\ 0_2883]-1111970-1720679719
4.2.1.0 :
4.2.3.0:
那要咋做,才能看
麻烦确认查看堆栈的是这个命令
gdb bin/obproxy core-[ACCEPT\ 0_2883]-1111970-1720679719
这个是 ODP 重启时,会发送一个信号给 accept 线程,有很小概率出现 core 文件
请问复现概率有多高
我测下来,每次都会,是发送SIGABRT这个信号吗
我测了下,kill -6就会生成core文件
不是 SIGABRT 信号,是 accept 线程收到一个信号之后,正常情况是直接退出,有小概率处于一个异常状态,此时会触发操作系统的 SIGABRT 信号
内部测试环境复现这个问题的概率很低,尚不清楚你这里为什么能稳定复现
目前已经记录这个问题,将在后续评估是否修复及对应的方案,感谢:)