Hi,

Since upgrading our Tomcat 9.0.x installation from 9.0.46 to 9.0.48, I've 
noticed
several times that the download of a response with static content from a web 
archive
(i.e. JavaScript file) takes 'keepAliveTimeout' time to complete.
It only occurs with SSL enabled Http11NioProtocol and useSendfile=false.

Could this be a bug? What is needed to further clarify this?
Thank you for considering this post.

The issue occurs when the bootstrap phase of our client application wants to 
load
multiple JavaScript modules.
The issue is clearly visible in the browser's developer tools on tab Timing:
the Content Download phase takes its normal time to download the content but
also indicates "Caution: request is not finished yet!".
At this point, the access log is updated for this request/response!
Only when the additional interval specified by the connector's keepAliveTimeout 
attribute
expires, the content download is really complete and further requests get a 
chance.

Apache Tomcat is installed on Windows Server 2019 Standard.
It is observed with Chrome, Edge and Firefox.
The offending static content (the JavaScript modules) varies in size between 2 
and 5 MBytes.

Connector configuration during my testing is as follows:
   port="8753"
   SSLEnabled="true"
   URIEncoding="UTF-8"
   compression="on"
   enableLookups="false"
   keepAliveTimeout="14000"
   maxHttpHeaderSize="16384"
   maxThreads="1500"
   protocol="org.apache.coyote.http11.Http11NioProtocol"
   scheme="https"
   secure="true"
   useSendfile="false"
   SSLHostConfig:
      protocols="TLSv1.2+TLSv1.1"
      sslProtocol="TLS"
         Certificate:
            certificateKeystoreFile="somefile.p12"
            certificateKeystorePassword="secret!"

Notes:
 - keepAliveTimeout at 14 s is a convenient value for testing;
   production has 100 s, so "100000"
 - it happens with compression="on" and compression="off"

When using non-SSL Http11NioProtocol, or Http11Nio2Protocol instead of 
Http11NioProtocol,
or when using useSendfile="true", the problem does not occur.

https://tomcat.apache.org/migration-9.html#Upgrading_9.0.x states this:
   "In 9.0.48 onwards, the NIO poller was simplified and the block poller and
    selector configuration has been removed"
Could it be that the problem symptom is a consequence or side effect of these 
changes?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to