记一次线上问题排查-类加载出问题
2019-07-18 本文已影响0人
土豆肉丝盖浇饭
问题发生
找不到的这个方法,这一期我们改过方法入参,所以如果还是用之前的版本的jar的包的话,肯定会报错
解决
第一反应是这个项目类加载有问题,先看下服务提供方,通过dubbo admin
提供者这个方法是存在的,并且方法总数和当前版本一致,排除问题
那么就让运维下载这个jar包来看
解压查看那个接口所在jar包
我勒个去
这个时间不就是上次发布的时间
开始怀疑运维用上次的jar包发布,让运维先重新发布了一次,但是错误依然,让运维给脚本以及新的jar包
抱歉脚本内容太复杂了,很费时间,不看了
运维给我jar包里面解压出来是对的。
但是还是有问题啊,同样的错,感觉运维还是用老版本的jar包发布。
感觉不能太依赖运维了,直接询问能不能吧线上权限申请下来,我要自己干了
有了线上权限,直接arthas搞起来
使用sm命令当前jvm运行的这个类
image.png
果然。加载的不对。只有4个方法。最新版有8个方法。
那么就用正确的jar包手动发布吧
发布完成后,再用arthas看下
8个方法,正确了。
原因
原因是我这个项目是我们公司第一个jar包启动的项目,运维单独写了脚本发布,但是这个脚本存在质量问题。
再感叹下,我们公司不让jar包启动,就算是sb项目,也要用war包兼容方式,放tomcat启动,尴尬。
当然说不是一定要jar包启动,能支撑业务都ok,但是包容性真的太差了。
自己能干的时候自己干吧
最后附上arthas文档,排查问题神器
https://alibaba.github.io/arthas/install-detail.html