Reputation: 65
I m getting below exception with Jetty 9.4.19 Http2 Client. The server is a Spring boot application ( 2.1.8 release ) running on Jetty
Request failed: java.io.IOException: protocol_error/invalid_hpack_block
at org.eclipse.jetty.http2.client.http.HttpReceiverOverHTTP2.onFailure(HttpReceiverOverHTTP2.java:184)
at org.eclipse.jetty.http2.HTTP2Stream.notifyFailure(HTTP2Stream.java:611)
at org.eclipse.jetty.http2.HTTP2Stream.onFailure(HTTP2Stream.java:361)
at org.eclipse.jetty.http2.HTTP2Stream.process(HTTP2Stream.java:267)
at org.eclipse.jetty.http2.HTTP2Session.onStreamFailure(HTTP2Session.java:513)
at org.eclipse.jetty.http2.parser.Parser$Listener$Wrapper.onStreamFailure(Parser.java:404)
at org.eclipse.jetty.http2.parser.BodyParser.notifyStreamFailure(BodyParser.java:235)
at org.eclipse.jetty.http2.parser.BodyParser.streamFailure(BodyParser.java:228)
at org.eclipse.jetty.http2.parser.HeaderBlockParser.parse(HeaderBlockParser.java:106)
at org.eclipse.jetty.http2.parser.HeadersBodyParser.parse(HeadersBodyParser.java:172)
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.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.produce(EatWhatYouKill.java:132)
at org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:170)
at org.eclipse.jetty.http2.HTTP2Connection.onFillable(HTTP2Connection.java:125)
at org.eclipse.jetty.http2.HTTP2Connection$FillableCallback.succeeded(HTTP2Connection.java:348)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:427)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:321)
at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
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:781)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)
at java.lang.Thread.run(Unknown Source) [?:?]
Any pointers will be highly appreciated.
Upvotes: 0
Views: 2413
Reputation: 18597
The server has sent an invalid HPACK block, as the exception reports.
What server it is? Tomcat?
You will get more details about what the client considers wrong if you enable DEBUG logging for the Jetty HTTP2Client
, by setting the category org.eclipse.jetty.http2
to DEBUG
.
Likely the server sent down an invalid header or something similar.
Since you're based on Spring Boot, you can enable Jetty on the server side too (if not already), as shown here and see if the problem still happens.
Upvotes: 0