arthas icon indicating copy to clipboard operation
arthas copied to clipboard

http api StackOverflowError server error

Open niejian opened this issue 2 years ago • 0 comments

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

环境信息

  • arthas-boot.jar 或者 as.sh 的版本:3.6.1
  • Arthas 版本: 3.6.1
  • 操作系统版本: macos, centos7
  • 目标进程的JVM版本: 1.8
  • 执行arthas-boot的版本: 3.6.1

重现问题的步骤

通过http api接口请求,返回Server error 请求参数:


{
    "action": "exec",
    "requestId": "",
    "sessionId": "",
    "consumerId": "",
    "command": "logger --name xxxxx.ActivityController"
}

日志如下 image

在终端执行arthas命令,正常返回

image

期望的结果

正常返回

实际运行的结果

本地debug

  • result 结果代码
  • 通过 fastjson 将result转json字符串,提示Stack Overflow
  • result结果信息


2022-05-16 16:55:32 [arthas-NettyWebsocketTtyBootstrap-4-1] INFO  c.a.a.d.i.n.h.logging.LoggingHandler -[id: 0x1e54a700, L:/127.0.0.1:8563] READ: [id: 0xa00766f5, L:/127.0.0.1:8563 - R:/127.0.0.1:65429]
2022-05-16 16:55:32 [arthas-NettyWebsocketTtyBootstrap-4-1] INFO  c.a.a.d.i.n.h.logging.LoggingHandler -[id: 0x1e54a700, L:/127.0.0.1:8563] READ COMPLETE
2022-05-16 16:55:32 [arthas-TermServer-1-4] ERROR c.t.a.c.s.t.i.h.HttpRequestHandler -arthas process http request error: /api
java.lang.StackOverflowError: null
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.FieldSerializer.writeValue(FieldSerializer.java:318)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.FieldSerializer.writeValue(FieldSerializer.java:318)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.FieldSerializer.writeValue(FieldSerializer.java:318)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.FieldSerializer.writeValue(FieldSerializer.java:318)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.FieldSerializer.writeValue(FieldSerializer.java:318)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.FieldSerializer.writeValue(FieldSerializer.java:318)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:472)
        at com.alibaba.arthas.deps.com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:154

niejian avatar May 16 '22 09:05 niejian