Skip to content

[Bug]: Segfault Core dump #59

Description

@hophiya

Describe the bug

OBProxy 4.3.4.0 在特定条件下发生 segfault 进程崩溃,已复现多次,均在凌晨 3 点左右批处理任务集中涌入时触发。

Environment

项目 版本/配置
OBProxy 版本 4.3.4.0 (obproxy-ce-4.3.4.0-fba87ccf12faba9ba599cd7b0ca4a8149d1abb0e)
OceanBase 版本 4.3.5.2 (observer)
OS Alibaba Cloud Linux 3 (kernel 5.10.134)
架构 x86_64
部署方式 物理机/云主机,非容器化
内存 14G ~ 61G 不等

Fast reproduce steps

ODP 进程内部发生 segfault,abort() 后 core dump。/var/log/messages 记录的 crash stack trace:
`Process (obproxy) dumped core.

Stack trace of thread :
#0 raise (libc.so.6)
#1 abort (libc.so.6)
#2 n/a (/home/admin/obproxy/bin/obproxy)
#3 n/a (/home/admin/obproxy/bin/obproxy)
#4 __restore_rt (libc.so.6)
#5 __strncasecmp_l_evex (libc.so.6) ← crash point
#6 ... obproxy internal ...
#7~#38 obproxy event loop / main`
crash point: __strncasecmp_l_evex — glibc 的字符串大小写不敏感比较函数,使用 AVX-512 指令优化
直接原因: 传入了非法内存地址(悬垂指针或已释放的内存),导致 segfault
signal 处理: ODP 内部捕获 SEGV 信号后调用 abort()

Expected behavior

  • ODP 在生产负载下稳定运行,不影响客户端连接
  • 字符串比较不访问非法内存
  • 进程可稳定运行数周无需重启

Actual behavior

  • ODP 在凌晨 3 点半左右 segfault → abort → core dump
  • obproxyd.sh 在 1~2 分钟内自动拉起
  • 附带 crash stack trace 和首次 segfault 的 dmesg 详情

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions