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: [email protected] For additional commands, e-mail: [email protected]
