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: dev@tomcat.apache.org Reporter: raghavendra...@ericsson.com 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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org