arthas icon indicating copy to clipboard operation
arthas copied to clipboard

retransform jacoco报错

Open zenisann opened this issue 7 months ago • 0 comments

  • [ ] 我已经在 issues 里搜索,没有重复的issue。

环境信息

  • arthas-boot.jar 或者 as.sh 的版本: 3.7.2
  • Arthas 版本: 3.7.2
  • 操作系统版本: CentOS 7
  • 目标进程的JVM版本: 1.8.0_162
  • 执行arthas-boot的版本: 1.8.0_162

重现问题的步骤

  1. 本地Java文件使用Arthas插件生成retransform命令
  2. 在远程机器上运行命令
  3. 命令报错

期望的结果

正常进行热替换

实际运行的结果

retransform error! java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields)

把异常信息贴到这里
2024-07-04 10:50:09 [arthas-NettyHttpTelnetBootstrap-3-1] INFO  c.a.a.d.i.n.h.logging.LoggingHandler -[id: 0x605ae804, L:/127.0.0.1:3658] READ: [id: 0x18672a19, L:/127.0.0.1:3658 - R:/127.0.0.1:48962]
2024-07-04 10:50:09 [arthas-NettyHttpTelnetBootstrap-3-1] INFO  c.a.a.d.i.n.h.logging.LoggingHandler -[id: 0x605ae804, L:/127.0.0.1:3658] READ COMPLETE
2024-07-04 10:50:09 [arthas-NettyHttpTelnetBootstrap-3-4] INFO  c.t.a.core.shell.term.impl.Helper -Loaded arthas keymap file from com/taobao/arthas/core/shell/term/readline/inputrc
2024-07-04 10:50:09 [arthas-command-execute] INFO  c.t.a.c.c.k.RetransformCommand -Try retransform class name: *******, ClassLoader: ModuleClassLoader for Module "*******," from Service Module Loader
2024-07-04 10:50:09 [arthas-command-execute] INFO  c.t.a.c.c.k.RetransformCommand -RetransformCommand match class: *******,, id: 2, classLoaderClass: null, hashCode: null
2024-07-04 10:50:09 [arthas-command-execute] ERROR c.t.a.c.c.k.RetransformCommand -retransform error! java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields)
java.lang.UnsupportedOperationException: class redefinition failed: attempted to change the schema (add/remove fields)
        at sun.instrument.InstrumentationImpl.retransformClasses0(Native Method)
        at sun.instrument.InstrumentationImpl.retransformClasses(InstrumentationImpl.java:144)
        at com.taobao.arthas.core.command.klass100.RetransformCommand.process(RetransformCommand.java:294)
        at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.process(AnnotatedCommandImpl.java:82)
        at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl.access$100(AnnotatedCommandImpl.java:18)
        at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:111)
        at com.taobao.arthas.core.shell.command.impl.AnnotatedCommandImpl$ProcessHandler.handle(AnnotatedCommandImpl.java:108)
        at com.taobao.arthas.core.shell.system.impl.ProcessImpl$CommandProcessTask.run(ProcessImpl.java:385)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

项目使用了jacoco,导致retransform失败

zenisann avatar Jul 04 '24 03:07 zenisann