介绍 OBServer 启动失败并报 4016 错误时,如何进行问题排查并解决问题。
适用版本
OceanBase 数据库所有版本
问题现象
启动停止的 OBServer 失败,错误代码 4016,错误日志信息如下:
[2021-02-25 11:04:28.197103] ERROR [CLOG] get_scan_file_range_based_on_log_id (ob_log_scan_runnable.cpp:379) [123468][4624][Y0-00000000000000000] [lt=28] [dc=0] timer schedule failed(ret=-4016) BACKTRACE:0x9272d3a 0x91e8ab2 0x34d3d7f 0x443927 0x1d862d0 0x6522a9e 0x6522b75 0x6522ace 0x3ba8aea 0x910ebf7 0x910d133 0x910c60f
[2021-02-25 11:04:28.197236] ERROR on_fatal_error(ob_log_define.h:651) [123468][4624][Y0-00000000000000000] [lt=11] [dc=0] ret = -4016 BACKTRACE: 0x9272d3a 0x1cb08dc 0x3ba8aea 0x910ebf7 0x910d133 0x910c60f BACKTRACE:0x9272d3a 0x1cb08dc 0x3ba8aea 0x910ebf7 0x910d133 0x910c60f
可能原因
根据错误日志中的 timer schedule failed 信息,推断问题可能是由于在启动进程过程中有时间跳变,导致 OBServer 启动超时报错。
解决方式
通过以下方式解决该问题:
调整本地时钟。
其中
ntp_server_ip为时钟服务器的 IP 地址。[root@hostname /]# ntpdate <ntp_server_ip>启动 OBServer。
[admin@hostname ~]$ cd oceanbase [admin@hostname oceanbase]$ ./bin/observer