Bug 65350 - The index ID of the request header that Jetty sent to Tomcat was not found in the index table on the Tomcat side
Summary: The index ID of the request header that Jetty sent to Tomcat was not found in...
Status: NEEDINFO
Alias: None
Product: Tomcat 9
Classification: Unclassified
Component: Catalina (show other bugs)
Version: 9.0.45
Hardware: PC Linux
: P2 normal (vote)
Target Milestone: -----
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-06-03 14:15 UTC by Thomas
Modified: 2021-08-24 10:32 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas 2021-06-03 14:15:02 UTC
Jetty version
9.4.41.v20210516

OS type/version
Centos 7

I use jetty http client to call tomcat server in h2c protocol. I encountered the following exception after running about 8 hours.
It seems the header tables are not sync between jetty and tomcat.

java.lang.NullPointerException
at org.apache.coyote.http2.HpackDecoder.handleIndex(HpackDecoder.java:267)
at org.apache.coyote.http2.HpackDecoder.decode(HpackDecoder.java:109)
at org.apache.coyote.http2.Http2Parser.readHeaderPayload(Http2Parser.java:486)
at org.apache.coyote.http2.Http2Parser.readHeadersFrame(Http2Parser.java:270)
at org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:251)
at org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:164)
at org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.completed(SocketWrapperBase.java:1089)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.run(NioEndpoint.java:1621)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Comment 1 Mark Thomas 2021-06-07 18:22:37 UTC
Without some idea of how to reproduce this - and ideally a test case that demonstrates it - there isn't enough information in this report for the Tomcat team to work with.

Given that the header state is maintained at the connection level, we'd likely need to see a network trace for the entire connection if we were going to debug this from the network trace.

What we can do is add some debug logging that might provide some pointers if Tomcat is run with the hpack debug logging enabled.
Comment 2 Christopher Schultz 2021-06-07 19:32:26 UTC
I can't seem to find the reference to it, now, but I thought the reporter said that a header line (or name?) with > 1024 characters seems to trigger this. I'll keep searching for that reference.
Comment 3 Mark Thomas 2021-06-07 19:41:02 UTC
Additional debug logging added in
- 10.1.x for 10.1.0-M1 onwards
- 10.0.x for 10.0.7 onwards
- 9.0.x for 9.0.47 onwards
- 8.5.x for 8.5.67 onwards

Enable with:

org.apache.coyote.http2.HpackDecoder.level = FINE 

in $CATALINA_BASE/logging.properties
Comment 4 Thomas 2021-06-09 07:36:09 UTC
The same issue was submitted in jetty, please help address it.
https://github.com/eclipse/jetty.project/issues/6341
Comment 5 Joakim Erdfelt 2021-06-09 11:01:40 UTC
(In reply to Christopher Schultz from comment #2)
> I can't seem to find the reference to it, now, but I thought the reporter
> said that a header line (or name?) with > 1024 characters seems to trigger
> this. I'll keep searching for that reference.

I think you are referring to https://bz.apache.org/bugzilla/show_bug.cgi?id=65340
Comment 6 Mark Thomas 2021-07-22 16:57:55 UTC
It has been more than a month and no debug logs have been provided that show this issue. Unless the information requested is provided, this issue will eventually get resolved as WORKSFORME.
Comment 7 Mark Thomas 2021-08-24 10:32:48 UTC
Another month has passed. This issue is heading towards a WONTFIX resolution.