Skip to content

记录一个操作导致arthas卡死问题 ClassCircularityError: com/alibaba/arthas/deps/ch/qos/logback/classic/spi/ThrowableProxy #3153

@hengyunabc

Description

@hengyunabc

启动 math-game.jar 。然后arthas attach之后执行:

$ options unsafe true
 NAME    BEFORE-VALUE  AFTER-VALUE
-----------------------------------
 unsafe  false         true
$ stack 'java.util.zip.ZipFile$ZipFileInflaterInputStream' '<init>' -n 20
Press Q or Ctrl+C to abort.

可以发现arthas shell 卡死了。用 jstack 查看,也没有明显的死锁。但是退出 math-game.jar 会有下面的异常信息:

Exception in thread "as-shutdown-hooker" java.lang.ClassCircularityError: com/alibaba/arthas/deps/ch/qos/logback/classic/spi/ThrowableProxy
        at com.alibaba.arthas.deps.ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:119)
        at com.alibaba.arthas.deps.ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:419)
        at com.alibaba.arthas.deps.ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)
        at com.alibaba.arthas.deps.ch.qos.logback.classic.Logger.error(Logger.java:538)
        at com.taobao.arthas.core.server.ArthasBootstrap.destroy(ArthasBootstrap.java:535)
        at com.taobao.arthas.core.server.ArthasBootstrap$2.run(ArthasBootstrap.java:179)

如果先任意执行一个 arthas 的其它的 watch/trace 命令,再执行 stack 'java.util.zip.ZipFile$ZipFileInflaterInputStream' '<init>' -n 20就不会死锁。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions