【工具】static成员变量引发的BUG传染事件

项目中发现分页有时会发生变化,所以开始排查。

下载启动 java -jar 启动 Arthas

通过Arthas stack命令查看当前方法被调用的调用路径

通过Arthas trace命令查看方法内部调用路径

通过Arthas watch命令查看方法返回值

通过Arthas getstatic命令查看类的静态属性

或者使用java-debug-tool

发现每次重新上线 分页正常 按照静态属性25分页 过一段时间后 分页变为500

查看静态属性确实由25变成了500

查看静态属性赋值方法 有一个接口的会按照500分页

一旦调用该接口 JVM实例中分页默认值就变成500

之前分页项很少,所以没有发现

项目运行一段时间后 会发现分页异常 看不到下一页的数据 

项目是分布式结构 直接发生异常分页500的接口处于 业务线上

实际对外的Web项目调用该业务线其他涉及到分页的接口后 会将数据反序列化成对象 并且通过代码更新PageSize 覆盖掉本地的默认分页 间接发生异常  最终导致分页发生错误 

 
发布了22 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/t1g2q3/article/details/103880814