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

Reply via email to