XX业务反序列化数据报错问题定位报告

XX业务反序列化数据报错问题定位报告

1 问题描述

XX业务在高负载tps压测场景下,业务过程中的反序列化数据操作时发现数据解析报错的情况。

2 测试环境

本次测试机
CPU 鲲鹏920
内存 512GB
网卡 单口100Gbps*2
操作系统 Kylin V10 SP1

n 应用软件

软件名称 版本 说明
JAVA 1.8.0_242 依赖版本
Disruptor 3.4.3 依赖版本
Netty 4.1.90-3 依赖版本

3 组网信息

TLV****结构设计:

4 解析数据报错问题分析

业务在高负载tps压测场景下业务队列线程处理缓冲区数据出现反序列化报错。报错原因是数据里面包含了非法信息,即源数据遭到篡改。

4.1 代码Debug分析

通过debug分析,原先正常的数据中的payloadLength仅为36-39的数据范围,但是数据遭到篡改后变成了错误值千万级数据,进而导致解析报错。

4.2 抓取系统报文解析

4.2.1 粘包/拆包现象

采用tcpdump抓取系统报文,正常十六进制报文内容格式有规范,均以01 01 00 00开头。但是分析过程中发现数据有粘包/拆包现象,导致了数据头偏移,报文内容不再以01 01 00 00开头。此时怀疑是代码无法正常处理粘包/拆包现象导致,后续与客户确认在业务层针对该现象已实现代码可以正常处理。

4.2.2 报错data数据解析

打印业务报错时的metadata数据,并在tcpdump下来的报文中找到对应的metadata数据,即08 c9 db d9 e1 03 10......开头的报文位置。

在tcpdump下来的报文中找到报错的metadata数据,发现报文存在不完整的现象。

正常的两段报文如下图所示,当收到的报文是完整的时候,业务不会解析错误。

4.3 上下报文序列号排查

Tcpdump中的报文ID为XX,在wireshark中排查该报文序列号正常,19217329 + 39096 = 19256425,说明不存在重传报文等异常问题。

5 结论

存在重传报文等异常问题。

外链图片转存中...(img-BRtec9Lz-1789485131259)

5 结论

本次业务解析报错通过多轮分析,最终定位到是服务器的网卡收到的报文有问题。后经排查是数据压测问题导致数据被截断。

相关推荐
达~熊迪18 分钟前
IP 分配前核查:把在线状态和使用登记一起看
服务器·网络·tcp/ip
qq_谁赞成_谁反对19 分钟前
甲方IT的成长之路--SG TCP网络优化工具--20261026
运维·服务器·udp·tcp
织码weavecodes2 小时前
新闻资讯模块设计:内容发布、阅读计数与附件鉴权
java·服务器·数据库
一只旭宝3 小时前
回调函数(Callback)
linux·服务器·算法
less_121383 小时前
鸿蒙 WPS Open SDK 二开复盘:从注册、打开到回传的完整能力链
服务器·sdk·harmonyos·wps·鸿蒙开发
电梯界知识分子5 小时前
景德镇老房重新设计阶段规划楼梯与电梯,1.7m×1.6m空间装400kg观光电梯,棕色框架茶色玻璃适配中式装修
大数据·服务器·前端·网络·家用电梯
qeen875 小时前
【Linux】Ext2文件系统介绍
linux·服务器
学页官方5 小时前
部署实战】教培系统私有化部署全流程:从云服务器到上线验收
运维·服务器
小嘉丶学长5 小时前
Day08 · 字符串(二)
服务器·开发语言·python·学习·1024程序员节
指艺6 小时前
VirtualBox安装fedora完成后重启,仍提示安装fedora
运维·服务器