OCP升级obproxy-4.2.1.0到4.2.3.0会生成一个core文件

【 使用环境 】测试环境
【 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文件

core.zip (2.7 MB)
core文件和堆栈日志都发了一份,你看下

麻烦发下使用的 obproxy-4.2.1.0 和 obproxy-4.2.3.0 的具体版本号
./obproxy -V

升级前4.2.1.0


升级后4.2.3.0

下载的哪个版本的 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

知道了,core文件是老的obproxy版本生成的,用新的obproxy读不到堆栈,老的obproxy版本可以

这个是 ODP 重启时,会发送一个信号给 accept 线程,有很小概率出现 core 文件

请问复现概率有多高

我测下来,每次都会,是发送SIGABRT这个信号吗


操作系统信息

我测了下,kill -6就会生成core文件

不是 SIGABRT 信号,是 accept 线程收到一个信号之后,正常情况是直接退出,有小概率处于一个异常状态,此时会触发操作系统的 SIGABRT 信号

内部测试环境复现这个问题的概率很低,尚不清楚你这里为什么能稳定复现

目前已经记录这个问题,将在后续评估是否修复及对应的方案,感谢:)