https://bz.apache.org/bugzilla/show_bug.cgi?id=64671
Bug ID: 64671
Summary: HTTP/2 Stream.receivedData method throwing continuous
NullPointerException in the logs
Product: Tomcat 9
Version: 9.0.37
Hardware: HP
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: -----
*Sub-Component - Coyote*
*OS : Redhat Linux*
*Description:*
*Setup:*
We have an implementation with Tomcat to transport http/2 packets between 2
systems (h2c connection).
*Issue reproduction:*
With JMeter as simulation client, if we configure 200 threads (200 connections)
to connect towards Tomcat Server 9.0.37 (embedded in our system) and if we send
200 requests per second (each packet app. having 8 to 10 KB), we are getting
the following exceptions in Tomcat logs.
Exception in thread "http-nio-x.y.z.a-1234-exec-285"
java.lang.NullPointerException
at org.apache.coyote.http2.Stream.receivedData(Stream.java:618)
at
org.apache.coyote.http2.Http2UpgradeHandler.startRequestBodyFrame(Http2UpgradeHandler.java:1399)
at
org.apache.coyote.http2.Http2AsyncUpgradeHandler.startRequestBodyFrame(Http2AsyncUpgradeHandler.java:39)
at
org.apache.coyote.http2.Http2Parser.readDataFrame(Http2Parser.java:172)
at
org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:245)
at
org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.completed(Http2AsyncParser.java:163)
at
org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.completed(SocketWrapperBase.java:1087)
at
org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState.run(NioEndpoint.java:1510)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
*Background*
Currently we are using 9.0.22 in our production environment. While pumping
traffic with the above mentioned setup (with 9.0.22 tomcat version), we were
seeing memory leak with Coyote.RequestInfo Objects.
When analyzing the heap, we understood that the connection id number that was
printed in the logs (Connection [22139]....) was almost matching the number of
HTTP11Processor objects held in the heap, even though the number of live
threads were less and the number of live connections too were less.
So, suspecting a memory leak, we tried to simulate the same thing in the latest
9.x series tomcat version (9.0.37), in which we observed this exception
(NullPointerException) and we were not seeing the memory leak issue.
*Resolution/Clarification requested*
* Can you explain the root cause for this exception and is there an impact due
to this NullPointerException?
* Is there a known memory leak that is existing in 9.0.22 and is addressed in
the upcoming versions, which is why we are not seeing the memory leak issue in
9.0.37? Can you please confirm?
Thanks in advance.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]