3 zones 高可用集群 observer 全部停止后集群无法再次重新启动

【产品名称】observer

【产品版本】

bin/observer --version

observer (OceanBase CE 3.1.0)

REVISION: -377fa3d62f0b4a7a20dd2e7ebaaa0ef38f190759

BUILD_BRANCH: master

BUILD_TIME: Jun 3 2021 06:21:31

BUILD_FLAGS: RelWithDebInfo

【问题描述】

原 3 zones 集群启动参数如下(分别为 zone1/zone2/zone3)

bin/observer -o datafile_size=384G,memory_limit=80G,system_limit=16G,cpu_count=32 -z zone3 -p 3306 -P 2882 -c 1 -d /home/oceanbase/data -i bond1 -r “192.168.1.243:2882:3306;192.168.1.244:2882:3306;192.168.1.245:2882:3306”

集群正常启动,可正常创建租户,可通过 MySQL Client 连接使用。

但在停止服务后,集群无法正常启动。停止命令为:kill -15 `cat run/observer.pid` && rm run/observer.pid

命令发送一段时间后(通常约 1 分钟左右),observer 正常退出。此时通过上述启动命令再次启动 observer 时,observer crash 退出:

CRASH ERROR!!! sig=11, sig_code=1, sig_addr=0, timestamp=1623204996220625, tid=18362, tname=observer, trace_id=0-0, extra_info=((null)), lbt=0x8c1adf8 0x8c1bb0a 0x7f707292172f 0x77554a0 0x76d84a1 0x7bdd5f6 0x7bbd6ff 0x7bc44e4 0x7bc9a9d 0x7bcde0e 0x7bcd6c2 0x7bd3be8 0x7bd2974 0x7cac901 0x7c904f3 0x7707876 0x726e0df 0x84077b1 0x20f4edb 0x7f70725ef09a 0x20f3ba8

home_path 自动生成 stack 文件,如:stack.18362.20216921635,内容如下(问答限制了 5000 字,下面内容不全):

tid: 19493, tname: MacroMetaMgr, lbt: 0x8c20251 0x8c203bd 0x8c1f834 0x7f707292172f 0x7f707291d35b 0x6fde9d8 0x8b99fa8 0x3248cee 0x2c04e93 0x89eeff4 0x89edc51 0x89ea6ae, sql: TODO tid: 19494, tname: ReqMemEvict, lbt: 0x8c20251 0x8c203bd 0x8c1f834 0x7f707292172f 0x7f707291d35b 0x6fde9d8 0x8b99fa8 0x3248cee 0x2c04e93 0x89eeff4 0x89edc51 0x89ea6ae, sql: TODO tid: 19495, tname: WeakReadService, lbt: 0x8c20251 0x8c203bd 0x8c1f834 0x7f707292172f 0x7f707291d35b 0x8c737fd 0x7f4074b 0x2c02143 0x2c04e93 0x89eeff4 0x89edc51 0x89ea6ae, sql: TODO tid: 19496, tname: ReqMemEvict, lbt: 0x8c20251 0x8c203bd 0x8c1f834 0x7f707292172f 0x7f707291d35b 0x6fde9d8 0x8b99fa8 0x3248cee 0x2c04e93 0x89eeff4 0x89edc51 0x89ea6ae, sql: TODO

我也遇到同样的问题了,也是这样的信息

更新:从集群初始化 => 资源单元 => 资源池 => 租户 => obproxy 接入 => load 数据到租户(sysbench prepare)每一步进行测试,目前的情况是:在有数据承载后,这个问题就会出现。前面的所有操作不会造成这个问题。

我也遇到同样的问题了,也是这样的信息

补充环境信息:

  1. 普通租户
  2. 数据通过  sysbench prepare,16 张表,每张表 1000W 记录

我尝试复现下。

这个问题的原因是访问了空指针,该问题已修复,请参考:https://github.com/oceanbase/oceanbase/pull/96

我没看到解决办法,重新下载新版本部署吗?

将这个PR的diff apply到源码后编译,重新部署集群https://github.com/oceanbase/oceanbase/pull/96