首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库 V4.x 版本使用二合一协议时偶发断链报错 unexpected end of stream, read 0 bytes from 4 的原因和解决方法
更新时间:2026-07-24 10:01
问题现象
连接 OceanBase 数据库 V4.x 版本的 OBServer 时会偶发断链报错 unexpected end of stream, read 0 bytes from 4。
关键信息
OBServer 日志中会打印 EDIAG 级别日志,如下两个关键字出现即说明发生了此问题,关键日志:errcode=-4016] fail to do proto20 packet encode、errcode=-4016] invalid easy buffer。
errcode=-4016] fail to do proto20 packet encode、errcode=-4016] invalid easy buffer
[2024-06-06 21:07:17.620236] EDIAG [RPC.OBMYSQL] do_proto20_packet_encode (ob_2_0_protocol_utils.cpp:154) [378690][T1012_L0_G0][T1012][xxxxx-xxxxx-xxxxx-xxxxx] [lt=14][errcode=-4016] invalid easy buffer(easy_buffer={read_pos:0xfb100ccb5c381a06, buf_.pos:0xfb100ccb5c381a06, buf_.last:0x91a8597c5b1495, buf_.end:0x7fc365a97588, orig_buf_size:355910780198148994, orig_data_size:396769276912138895, read_avail_size:396769276912138895, write_avail_size:-40858496713989901}, ret=-4016) BACKTRACE:0x12612235 0x7423677 0x7423244 0x7422ed2 0x7402d8b 0x136b8b15 0x518ec90 0x518d216 0x518c52d 0x52e9d7b 0xa13fcfe 0xa1babaa 0xa1bed39 0xa1bbaa8 0xa1c2e1a 0xa1c6e0d 0x515f995 0x515ad2e 0xa05eb94 0x12c97923 0x7ff573422e25 0x7ff57315034d
[2024-06-06 21:07:17.620387] EDIAG [RPC.OBMYSQL] do_packet_encode (ob_2_0_protocol_utils.cpp:95) [378690][T1012_L0_G0][T1012][xxxxx-xxxxx-xxxxx-xxxxx] [lt=7][errcode=-4016] fail to do proto20 packet encode(param={proto20_context:0x7fe6fda040f0, req:0x7ff0b5da8ec0, ez_buf:0x7fc365a94138, pkt:0x7fbbe9ccfce8, seri_size:0, conn_id:3221634483, encode_ret:0, need_flush:false, is_last:false, is_pkt_encoded:false, large_pkt_buf:null, large_pkt_buf_len:0, large_pkt_buf_pos:0, extra_info_kvs:0x7fe6fda04150}, ret=-4016) BACKTRACE:0x12612235 0x7423677 0x7423244 0x7422ed2 0x7402d8b 0x136938af 0x518e19e 0x518d216 0x518c52d 0x52e9d7b 0xa13fcfe 0xa1babaa 0xa1bed39 0xa1bbaa8 0xa1c2e1a 0xa1c6e0d 0x515f995 0x515ad2e 0xa05eb94 0x12c97923 0x7ff573422e25 0x7ff57315034d
问题原因
原因为 OBServer 的异步回包逻辑和二合一协议同步逻辑产生回包冲突,导致 OBServer 的网络数据包回包格式出错,OBServer 会主动断链导致业务侧报错异常断链。
问题的风险及影响
回包格式出错导致断链接。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V4.2.1 BP3(oceanbase-4.2.1.3-103000052023122809)及之前版本。
解决方法及规避方式
解决方法:
升级至问题已修复版本。目前已修复的版本为 OceanBase 数据库 V4.2.1 BP4(oceanbase-4.2.1.4-104000062024022914)版本。
规避方式:
无法规避,偶发断链时重新建立连接即可。