问题现象
在使用 OceanBase 数据库 V4.2.5 版本,OBProxy V4.2.1 版本时进行 changeuser 命令,会 hung 住。
关键诊断信息
触发条件
OceanBase 数据库版本 >= V4.2.2 版本,OBProxy 版本 < V4.2.3 版本,触发 changeuser 命令,客户端驱动登录时采用 Caching_sha2_password 认证方法。
事前巡检
当升级 OceanBase 数据库版本到 V4.2.5 BP1 之后出现 TPS 跌零的情况。
事后诊断
通过抓包分析,发现是 request change user 命令不兼容。
问题原因
OceanBase 数据库在 V4.2.2 版本实现 change user 支持 authswitch 时,未考虑 OBProxy 旧版本的兼容性。在搭配不支持 authswitch 的 proxy 版本时,proxy 因为无法处理 OBServer 发送的 authswitch request 请求而 hung 住。
问题的风险及影响
在 OceanBase 数据库版本 >= V4.2.2 版本,OBProxy 版本 < V4.2.3 版本的配置下使用进行 changeuser 命令会导致 hung 住。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版 V4.2.2 GA(oceanbase-4.2.2.0-100000082024011317)及之后版本、V4.2.5 GA(oceanbase-4.2.5.0-100000082024102022)及之后版本、V4.3.5 GA(oceanbase-4.3.5.0-100000122024123020)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V4.2.5 BP1 Hotfix2(oceanbase-4.2.5.1-101020052025011421)、V4.2.5 BP2(oceanbase-4.2.5.2-102000122025011711)、V4.3.5 GA Hotfix2(oceanbase-4.3.5.0-100020012025012015)、V4.3.5 GA Hotfix3(oceanbase-4.3.5.0-100030012025020717)、V4.3.5 GA Hotfix4(oceanbase-4.3.5.0-100040012025021921)、V4.3.5 GA Hotfix5(oceanbase-4.3.5.0-100050012025022422)、V4.3.5 GA Hotfix6(oceanbase-4.3.5.0-100060022025031922)、V4.3.5 GA Hotfix7(oceanbase-4.3.5.0-100070012025040810)、V4.3.5 GA Hotfix8(oceanbase-4.3.5.0-100080012025052715)、V4.3.5 GA Hotfix9(oceanbase-4.3.5.0-100090012025063017)、V4.3.5 GA Hotfix10(oceanbase-4.3.5.0-100100032025071516)、V4.3.5 GA Hotfix11(oceanbase-4.3.5.0-100110012025072810)、V4.3.5 GA Hotfix12(oceanbase-4.3.5.0-100120012026011215)、V4.3.5 BP1(oceanbase-4.3.5.1-101000292025030623)。
规避方式
在不升级 OceanBase 数据库版本的情况下可以通过直连的方式规避此问题。