[alibaba/arthas]引入 skywalking 后无法 retransform 被 skywalking增强的类

2024-07-09 982 views
3
环境信息
  • arthas-boot.jar 或者 as.sh 的版本: 3.5.0
  • Arthas 版本: 3.5.9
  • 操作系统版本: k8s
  • 目标进程的JVM版本: 1.8
  • 执行arthas-boot的版本: 3.5.0
重现问题的步骤
  1. 同时引入arthas 和 skywalking
  2. 执行retransform 命令 热更新 controller 相关的类
  3. 热更新失败
期望的结果

What do you expected from the above steps? 按照其它issue 已经 开启了 skywalking 的 cache 功能, 可以正常执行 wathc trace 等命令, 期望能够正常执行 retransform 命令。

实际运行的结果

执行retransform 命令失败 实际运行结果,最好有详细的日志,异常栈。尽量贴文本。

把异常信息贴到这里
 retransform error! java.lang.UnsupportedOperationException: class redefinition failed: attempted to change superclass or interfaces

回答

7

已经按照#1141 开启了 skywalking 的代理缓存功能

1

可以用jad,或者dump,看具体skywalking做了哪些修改。然后为什么会导致重新 retransform 之后会失败。

本质上这个和 retransform 命令没啥关系,它只是触发了jvm的这个流程而已。