首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 启动时 UUID 模块初始化失败,导致后续一些初始化操作被跳过,OBServer 进入异常状态
更新时间:2026-06-04 09:56
问题现象
OBServer 启动时初始化失败,导致 SQL 执行报错或者执行 hang 住。
问题原因
在 OBServer 启动时,SQL 层需要执行一些变量的初始化,如果出现初始化失败会跳过剩下的步骤,并向上层抛出错误码,但是由于上层有吞错误问题,导致 OceanBase 仍然显示启动成功,在后续执行过程中出现异常。
目前在下面两个场景中可能会出现初始化失败:
- 一个场景是操作系统重启之后,网卡尚未 LinkUP,OBServer 就开始启动,启动过程中由于获取不到 mac 地址,导致 UUID 初始化失败。
- 另一个场景是在 OBServer 启动的时候因为每个线程栈所需的内存过大,导致 ObCharsetUtils 初始化失败。
关键信息
触发条件
OBServer 版本为未修复版本,操作系统重启之后,网卡尚未 LinkUP,OBServer 就开始启动,或者 OBServer 启动时候个线程栈所需的内存太大出现内存问题。
事前巡检
OBServer 启动时观察日志,是否存在 failed to init vars in uuid 或者 fail to init ObCharsetUtils 的日志。
事后诊断
通过日志搜索是否存在
failed to init vars in uuid或者fail to init ObCharsetUtils报错信息。gdb 观察
ObCharsetUtils::const_str_for_ascii_是否被初始化。
问题的风险及影响
用户执行 SQL 命令 hung 住或者持续报错。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库 V2.2.77 GA(oceanbase-2.2.77-20210508211731)及之后版本、V3.1.2 GA(oceanbase-3.1.2-20210618150922)及之后版本、V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本、V3.2.4 GA(oceanbase-3.2.4.0-100000072022102819)及之后版本、V4.1.0 GA(oceanbase-4.1.0.0-100001122023040322)及之后版本、V4.2.0 GA(oceanbase-4.2.0.0-100010082023083014)及之后版本、V4.2.1 GA(oceanbase-4.2.1.0-100000182023092722)及之后版本、V4.2.5 GA(oceanbase-4.2.5.0-100000082024102022)及之后版本、V4.3.5 GA(oceanbase-4.3.5.0-100000122024123020)及之后版本。
解决方法及规避方式
升级到问题已修复版本。目前已修复的版本包含 OceanBase 数据库 V4.2.1 BP10 Hotfix5(oceanbase-4.2.1.10-110050012025011614)版本、V4.2.1 BP10 Hotfix6(oceanbase-4.2.1.10-110060022025022409)版本、V4.2.1 BP11(oceanbase-4.2.1.11-111000052025032520)及之后版本、V4.2.5 BP2(oceanbase-4.2.5.2-102000122025011711)及之后版本、V4.3.5 BP2(oceanbase-4.3.5.2-102000162025051417)及之后版本。
重启 OBServer。