observer运行几十分钟后总自动crash

社区版:3.0.14
在没有跑任何语句的时候集群创建完毕后过几十分钟后就自动crash掉一个observer节点(最多时候会crash掉2个)。
observer.log报错如下:

在/home/admin/observer目录下生成了一个stack信息如附件:
stack.11684.202211253549.log (107.7 KB)

该节点的时钟同步状态如下:

时钟同步机的状态如下:

可以发下完整的observer.log吗

observer.log.tar.gz (51.8 KB)

你好,因为原始的observer.log太大不好上传。我做了如下截断:
grep -A1000 -B 1000 “CRASH ERROR” observer.log >observer.log.bak
tar -zcvf observer.log.tar.gz observer.log.bak
结果见附件。

麻烦您grep下所有机器的ERROR日志

按照以下思路排查,原文也给出了

可直接分析 `observer.log` 。因为这些版本对诊断功能进行了增强。对于异常退出的场景,会直接在 `observer.log` 中打印携带 `CRASH ERROR!!!` 关键字的 call stack(也称 backtrace)

通过 OBServer 的可执行文件获取线程栈的 call stack 信息,或者调试 core 文件。如果 observer.log 里在进程退出时生成了 CRASH ERROR!!! 关键字,记录了 observer 线程异常退出的 call stack 重要信息 ('lbt=' 关键字后尾随的地址 hex 值),执行以下命令获取线程信息。

addr2line -pCfe $observer $symbol_addr

https://www.oceanbase.com/docs/community-observer-cn-10000000000450190

另外再看看crash堆栈:addr2line -C -f -e + <observer二进制路径> + 下面截图红线这串地址

awk ‘$3==“ERROR” {print}’ observer.log >observer_err.log,结果见附件:
observer_err.log.tar.gz (3.2 KB)

addr2line的结果如下:

[admin@host3 log]$ addr2line -C -f -e  /home/admin/observer/bin/observer  0x9ab6278 0x9aa6b18 0x7f3293713cdf 0x7f595c5 0x8e9f047 0x8e9eb29 0x2ca95d3 0x2cabf01 0x9820da4 0x981f791 0x981c24e
safe_backtrace
??:?
oceanbase::common::coredump_cb(int, siginfo_t*)
??:?
??
??:0
oceanbase::storage::ObPartitionGroupIterator::get_next(oceanbase::storage::ObIPartitionGroup*&)
??:?
oceanbase::transaction::ObWeakReadService::scan_all_partitions_(long&, long&, long&, long&)
??:?
oceanbase::transaction::ObWeakReadService::run1()
??:?
oceanbase::share::ObThreadPool::run0()
??:?
oceanbase::lib::CoKThreadTemp<oceanbase::lib::CoUserThreadTemp<oceanbase::lib::CoSetSched> >::start()::{lambda()#1}::operator()() const
??:?
oceanbase::lib::CoSetSched::Worker::run()
??:?
oceanbase::lib::CoRoutine::__start(boost::context::detail::transfer_t)
??:?
trampoline
safe_snprintf.c:?

有一种方法是升级到新的版本,3.1.4;目前这个报错看不出来太多的信息;我想了解下具体场景是什么样的,怎么触发的,我们这边复现试试