Hello Experts

We've recently upgraded some of our production servers to Tomcat 9.0.65; every 
upgraded server crashed with java.lang.OutOfMemoryError within an hour or so 
under load.
The exact same setup (same application, Linux kernel, Java version etc.) with 
Tomcat 9.0.63 does not exhibit this issue.

A heap-dump through MAT gave the following leak suspect (leak report attached):

"
14,364 instances of "org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper", 
loaded by "java.net.URLClassLoader @ 0x6be257090" occupy 4,489,221,944 (91.95%) 
bytes.

These instances are referenced from one instance of 
"java.util.concurrent.ConcurrentHashMap$Node[]", loaded by "<system class 
loader>", which occupies 590,736 (0.01%) bytes.

Keywords

    org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper
    java.net.URLClassLoader @ 0x6be257090
    java.util.concurrent.ConcurrentHashMap$Node[]
"

Please let me know if I should provide additional information

Java: OpenJDK Runtime Environment Temurin-17.0.4+8 (build 17.0.4+8)
Linux: 4.14.281-212.502.amzn2.aarch64

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxHttpHeaderSize="16384"
               maxThreads="500"
               minSpareThreads="25"
               maxConnections="16384"
               maxPostSize="5242880"
               enableLookups="false" disableUploadTimeout="true"
               connectionTimeout="10000"
               compression="on"
               noCompressionStrongETag="false"
               SSLEnabled="true" scheme="https" secure="true">
        <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"
                         maxHeaderSize="16384"
                         keepAliveTimeout="20000"
                         compression="on"
                         noCompressionStrongETag="false"
                         noCompressionUserAgents=".+(OS X 10_1[34]|iPhone OS 
1[124]).+"
                         overheadContinuationThreshold="0"
                         overheadWindowUpdateThreshold="0"
                         overheadDataThreshold="0"
                         overheadCountFactor="0"/>
        <SSLHostConfig protocols="+TLSv1.2+TLSv1.3">
            <Certificate certificateKeystoreFile="conf/tomcat.p12"
                         certificateKeyAlias="tomcat"
                         certificateKeystorePassword=""
                         certificateKeystoreType="PKCS12"/>
        </SSLHostConfig>
    </Connector>

Thanks
Chen

<<attachment: heap_tertiary_65_Leak_Suspects.zip>>

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

Reply via email to