Jetty 9错误:禁止:java.lang.Throwable:HttpInput错误

时间:2019-03-26 05:03:21

标签: jetty-9

我正在使用Jetty 9.4.15服务器与Http2以独立模式部署战争。

配置的并发流数是jetty.http2.maxConcurrentStreams = 1000而不是默认值128。这是因为随着客户端拥有更多的流,我遇到了太多并发流错误。

该应用程序运行正常,除了服务器日志中显示的一些偶发错误之外。

org.eclipse.jetty.io.EofException: Reset cancel_stream_error
    at org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory$HTTPServerSessionListener.onReset(HTTP2ServerConnectionFactory.java:156) ~[?:?]
    at org.eclipse.jetty.http2.HTTP2Stream.notifyReset(HTTP2Stream.java:574) ~[?:?]
    at org.eclipse.jetty.http2.HTTP2Stream.onReset(HTTP2Stream.java:343) ~[?:?]
    at org.eclipse.jetty.http2.HTTP2Stream.process(HTTP2Stream.java:252) ~[?:?]
    at org.eclipse.jetty.http2.HTTP2Session.onReset(HTTP2Session.java:294) ~[?:?]
    at org.eclipse.jetty.http2.parser.Parser$Listener$Wrapper.onReset(Parser.java:368) ~[?:?]
    at org.eclipse.jetty.http2.parser.BodyParser.notifyReset(BodyParser.java:139) ~[?:?]
    at org.eclipse.jetty.http2.parser.ResetBodyParser.onReset(ResetBodyParser.java:97) ~[?:?]
    at org.eclipse.jetty.http2.parser.ResetBodyParser.parse(ResetBodyParser.java:66) ~[?:?]
    at org.eclipse.jetty.http2.parser.Parser.parseBody(Parser.java:194) ~[?:?]
    at org.eclipse.jetty.http2.parser.Parser.parse(Parser.java:123) ~[?:?]
    at org.eclipse.jetty.http2.parser.ServerParser.parse(ServerParser.java:115) ~[?:?]
    at org.eclipse.jetty.http2.HTTP2Connection$HTTP2Producer.produce(HTTP2Connection.java:248) ~[?:?]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:357) ~[?:?]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:181) ~[?:?]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[?:?]
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) ~[?:?]
    at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) ~[?:?]
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) ~[?:?]
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) ~[?:?]
    at java.base/java.lang.Thread.run(Thread.java:834) [?:?]
    Suppressed: java.lang.Throwable: HttpInput failure
        at org.eclipse.jetty.server.HttpInput.failed(HttpInput.java:831) ~[?:?]
        at org.eclipse.jetty.http2.server.HttpChannelOverHTTP2.onFailure(HttpChannelOverHTTP2.java:323) ~[?:?]
        at org.eclipse.jetty.http2.server.HTTP2ServerConnection.onStreamFailure(HTTP2ServerConnection.java:219) ~[?:?]
        at org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory$HTTPServerSessionListener.onReset(HTTP2ServerConnectionFactory.java:156) ~[?:?]
        at org.eclipse.jetty.http2.HTTP2Stream.notifyReset(HTTP2Stream.java:574) ~[?:?]
        at org.eclipse.jetty.http2.HTTP2Stream.onReset(HTTP2Stream.java:343) ~[?:?]
        at org.eclipse.jetty.http2.HTTP2Stream.process(HTTP2Stream.java:252) ~[?:?]
        at org.eclipse.jetty.http2.HTTP2Session.onReset(HTTP2Session.java:294) ~[?:?]
        at org.eclipse.jetty.http2.parser.Parser$Listener$Wrapper.onReset(Parser.java:368) ~[?:?]
        at org.eclipse.jetty.http2.parser.BodyParser.notifyReset(BodyParser.java:139) ~[?:?]
        at org.eclipse.jetty.http2.parser.ResetBodyParser.onReset(ResetBodyParser.java:97) ~[?:?]
        at org.eclipse.jetty.http2.parser.ResetBodyParser.parse(ResetBodyParser.java:66) ~[?:?]
        at org.eclipse.jetty.http2.parser.Parser.parseBody(Parser.java:194) ~[?:?]
        at org.eclipse.jetty.http2.parser.Parser.parse(Parser.java:123) ~[?:?]
        at org.eclipse.jetty.http2.parser.ServerParser.parse(ServerParser.java:115) ~[?:?]
        at org.eclipse.jetty.http2.HTTP2Connection$HTTP2Producer.produce(HTTP2Connection.java:248) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:357) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:181) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) ~[?:?]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) ~[?:?]
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) ~[?:?]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) ~[?:?]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:834) [?:?]

`

客户端日志显示以下错误。

Client.Timeout exceeded while awaiting headers.

客户端使用流式传输,而不是等待完整的响应。我不确定为什么有时会发生此错误。客户端超时配置为30秒,我检查了应用程序日志,其中应用程序处理逻辑从未超过2秒。

有人可以帮助我找到此问题的根本原因吗?

0 个答案:

没有答案