【问题标题】:IllegalStateException in HttpChannel.handle in JettyJetty 中 HttpChannel.handle 中的 IllegalStateException
【发布时间】:2020-11-12 16:58:13
【问题描述】:

我的日志中充满了这样的异常:

8884902 [qtp1075738627-4458] WARN  o.eclipse.jetty.server.HttpChannel - /upload 
java.lang.NullPointerException: null
78884902 [qtp1075738627-4458] WARN  o.e.j.u.t.strategy.EatWhatYouKill -  
java.lang.IllegalStateException: s=IDLE rs=COMPLETED os=ABORTED is=READY awp=false se=false i=false al=0
        at org.eclipse.jetty.server.HttpChannelState.unhandle(HttpChannelState.java:416)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:538)

即使系统似乎工作正常。有点担心“正常”操作会包含大量此类日志。我找不到其他人得到这样的例外。 这都是在当前版本的 Jetty 上,带有 Spring Boot 2.3.1 应用程序,使用 http2 连接器。它发生在应用程序中的几个不同的 URI 上,没有明确的模式。 对此有什么想法吗?我不想接受将不间断的异常作为该系统的正常行为。

查看 HttpChannelState 的源码可以看到异常是由以下原因形成的:

("s=%s i=%b a=%s",_state,_initial,_async);

但我无法进一步追查这意味着什么。

【问题讨论】:

    标签: jetty http2


    【解决方案1】:

    您对 Servlet Async Processing 或 Servlet Async I/O 的使用可能是原因。

    这样中止的输出流也很奇怪。

    8884902 [qtp1075738627-4458] WARN o.eclipse.jetty.server.HttpChannel - /upload java.lang.NullPointerException: null 的来源(在代码中)

    https://github.com/eclipse/jetty.project/blob/jetty-9.4.31.v20200723/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java#L600

    但为什么它没有堆栈跟踪也很奇怪。

    您应该在 Eclipse Jetty 问题跟踪器https://github.com/eclipse/jetty.project/issues 将此作为问题提交,并与我们一起找出问题的根源。

    如果您可以足够轻松地复制,那将使问题更容易排除故障。

    由于您使用的是 HTTP2,因此请确保同时升级您的 Java 版本和 Eclipse Jetty。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 2011-06-26
      • 2014-05-13
      • 2012-12-15
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      相关资源
      最近更新 更多