https://bz.apache.org/bugzilla/show_bug.cgi?id=66602
Bug ID: 66602 Summary: TCP abnormal shutdown during pressure testing based on HTTP2 (h2c) Product: Tomcat 9 Version: 9.0.75 Hardware: PC Status: NEW Severity: normal Priority: P2 Component: Connectors Assignee: dev@tomcat.apache.org Reporter: 517893...@qq.com Target Milestone: ----- Created attachment 38559 --> https://bz.apache.org/bugzilla/attachment.cgi?id=38559&action=edit normal request log comparison **Perform a simple GET request pressure test on the HTTP2 (h2c) service, and the TCP link will shutdown abnormally.** 1.By simulating 50 concurrent requests with 500 each, perform pressure testing and packet capture on a simple GET request. 2.The process found that the TCP link would be disconnected. 3.The reason is that tomcat sent a WINDOW_UPDATE Frame with window size value is zero. call Http2UpgradeHandler.endRequestBodyFrame method the dataLength is zero? Is this reasonable? Http2UpgradeHandler: public void endRequestBodyFrame(int streamId, int dataLength) throws Http2Exception, IOException { AbstractNonZeroStream abstractNonZeroStream = getAbstractNonZeroStream(streamId, true); if (abstractNonZeroStream instanceof Stream) { ((Stream) abstractNonZeroStream).getInputBuffer().onDataAvailable(); } else { // The Stream was recycled between the call in Http2Parser to // startRequestBodyFrame() and the synchronized block that contains // the call to this method. This means the bytes read will have been // written to the original stream and, effectively, swallowed. // Therefore, need to notify that those bytes were swallowed here. onSwallowedDataFramePayload(streamId, dataLength); } } -- 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