https://bz.apache.org/bugzilla/show_bug.cgi?id=61740

            Bug ID: 61740
           Summary: Intermittent NIO HTTP/2 errors
           Product: Tomcat 9
           Version: 9.0.1
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Connectors
          Assignee: dev@tomcat.apache.org
          Reporter: david.frank...@infinitecampus.com
  Target Milestone: -----

Created attachment 35509
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=35509&action=edit
screenshot of bug, code to reproduce (hopefully)

I’m trying to troubleshoot an intermittent response error using Tomcat 8.5.23
or 9.0.1 when using HTTP/2.  Basically we noticed that when running in HTTP/2
random css, js or html pages would error out causing small bugs that would go
away on refresh.  We were finally able to isolate it to a test case that
"usually" reproduces the error. 

The test case uses 100 iframes to draw 10 table cells that each get colored
green by a seperate css file so in total it makes 1101 requests.  If some of
those requests don't make it and then it displays red on that cell.  (See
attached image in the zip of the error in action).  I reproduced it using the
latest version of Firefox with caching disabled so that it makes every request
independently.  It is very hard to reproduce in Chrome since it tends to ignore
no-caching settings.  I've also found it easier to reproduce using a client
that has Windows 10 and a powerful computer.  A less powerful client running
Windows 7 had difficulty reproducing the error but still could after enough
tries.

So Tomcat running on Windows x64 and fresh download of either 9.0.1 or 8.5.23
with stock configuration I enable HTTP/2 with:

    <Connector port="8443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" >
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
        <SSLHostConfig>
            <Certificate 
                certificateKeystoreFile="xxx.pfx"
                certificateKeystorePassword="xxx"
                certificateKeystoreType="PKCS12"
                type="RSA" />
        </SSLHostConfig>
    </Connector>

And put the test files in the ROOT app and then hit
https://localhost:8443/newtest.html until the error happens.

As you can see in the image, some of the responses have 0 bytes and they will
display in red, some of the responses have response bodies but no HTTP status
code, some have HTTP 200 but no response body.  When there is no http status
returned the access log records these as 500 errors.  I can't find any
meaningful exception with catalina debug logging turned on.

-- 
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