问题现象
在升级场景下,OBServer 进程启动时,由于 RPC 安全认证对于 RPC 网络框架有改造,存在一个并发问题,有一定概率会导致 RPC 端口监听失败,此时其他 OBServer 包括本 OBServer 都无法同自己建立 RPC 连接,SQL 执行会报错 -4265 RPC CONNECT ERROR。
问题原因
RPC 安全认证对网络框架进行改造,启动时候存在并发问题,会导致创建 RPC 监听失败。
问题的风险及影响
如果启动时候触发了问题,RPC 服务不可用,但是 SQL 连接正常,所有和本机器相关的 SQL 操作都会报 -4265 RPC CONNECT ERROR。
影响版本
OceanBase 数据库 V2.2.77 BP15(oceanbase-2.2.77-115000012023010607)至 V2.2.77 BP18(oceanbase-2.2.77-118000012023052520),其中不包含 V2.2.77 BP17 Hotfix2(oceanbase-2.2.77-117020032023072119)版本。
解决方法及规避方式
- 升级到问题已修复版本,目前只修复了 OceanBase 数据库 V2.2.77 BP17 Hotfix2(oceanbase-2.2.77-117020032023072119)版本。
- 进程启动过程中,如果
grep到 ERROR 日志uloop_add_listen failed,需要手动杀掉进程并且重启,通过执行sudo netstat -panl|grep "0.0.0.0:2882",监测到 2882 RPC 端口监听成功即正常。