tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Thomas <ma...@apache.org>
Subject Re: Instances of org.apache.coyote.RequestInfo accumulate in RequestGroupInfo.processors and eventually result in OOME
Date Thu, 01 Mar 2018 11:18:13 GMT
On 01/03/18 11:10, Industrious wrote:
> Dear All,
> 
> In case it is a duplicate I am sorry I had to send this message again

Please don't do that.

> because it seems it has not arrived to anybody

If you haven't received a reply, the most likely reasons are:
- no-one knew the answer;
- the question was poorly written;
- the person that knows the answer hasn't had time to reply yet.

Re-sending it won't help.

> and I have not got in my inbox too

That is a 'feature' of GMail.

> though it appeared in online archives.

Which means it arrived.

Mark


> 
> I am running Tomcat 8 on Ubuntu. After a few days of running
> successfully my Tomcat's JVM crashes or becomes absolutely
> unresponsive because of OOME errors similar to this in catalina.out:
> --- cut -------
> SEVERE:Memory usage is low, parachute is non existent, your system may
> start failing.
> java.lang.OutOfMemoryError: Java heap space
> SEVERE:Memory usage is low, parachute is non existent, your system may
> start failing.
> java.lang.OutOfMemoryError: Java heap space
> SEVERE:Memory usage is low, parachute is non existent, your system may
> start failing.
> java.lang.OutOfMemoryError: Java heap space
> SEVERE:Memory usage is low, parachute is non existent, your system may
> start failing.
> java.lang.OutOfMemoryError: Java heap space
> SEVERE:Memory usage is low, parachute is non existent, your system may
> start failing.
> java.lang.OutOfMemoryError: Java heap space
> SEVERE:Memory usage is low, parachute is non existent, your system may
> start failing.
> java.lang.OutOfMemoryError: Java heap space: failed reallocation of
> scalar replaced objects
> 
> Exception: java.lang.OutOfMemoryError thrown from the
> UncaughtExceptionHandler in thread "http-nio-80-exec-2"
> --- cut -------
> 
> I was using a VM with 600MB of RAM. Soon I started having problems
> when Linux was killing Tomcat (OOM killer) as it considered its JVM as
> a candidate for killing or if I specify a lower maximum heap size I
> would eventually get OOME from JVM. I moved to a VM with 1.7GB of RAM
> but the problem still occurs eventually though a bit later than on the
> 600MB VM because I somewhat increased the maximum heap size.
> 
> It is strange because my webapp used to run fine on Openshift 512MB
> memory VM though it was JRE 1.7 and Tomcat 7. I did not make any
> considerable changes to server.xml (with the exception of those
> necessary to use Tomcat 8) or app itself, I attach my server.xml too.
> 
> I have read Tomcat's FAQ, Wiki pages and searched mailing lists but
> nothing seems to fit my case.
> 
> I would accept the fact that my application has a memory leak problem
> but it is absolutely unclear from this picture that it has one.
> 
> I have tried using Eclipse MAT to analyze memory dumps and to see what
> might be causing this and it turned out that the majority of heap >
> 75% is occupied by RequestInfo instances. I would be really grateful
> if someone could tell me what might be happening there.
> 
> Looking forward to your reply.
> 
> Best regards,
> Ivan
> 
> =============================================================================
> My current environment:
> VM with 1 CPU which has 1.7GB RAM
> 
> Tomcat 8.0.32 (8.0.32-1ubuntu1.5) on Ubuntu 16.04.1.
> 
> $ java -version
> openjdk version "1.8.0_151"
> OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
> OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
> 
> $ less /var/lib/tomcat8/bin/setenv.sh
> JAVA_OPTS="-Dlog4j.logging.dir=$CATALINA_BASE/logs \
> -Dlogging.dir=$CATALINA_BASE/logs \
> -Djava.awt.headless=true \
> -Xms220M \
> -Xmx220M \
> -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider \
> -Djava.security.egd=file:/dev/./urandom \
> -XX:+HeapDumpOnOutOfMemoryError \
> -XX:HeapDumpPath=$CATALINA_BASE/logs/java_pid%p.hprof"
> 
> 
> Eclipse MAT report
> ----------------------------------
> 1,121 instances of "org.apache.coyote.RequestInfo", loaded by
> "java.net.URLClassLoader @ 0xf7202b18" occupy 170,358,720 (77.39%)
> bytes. These instances are referenced from one instance of
> "java.lang.Object[]", loaded by "<system class loader>" - 199MB out of
> 209MB
> 
> server.xml
> ----------------------------------
> <?xml version='1.0' encoding='utf-8'?>
> <Server port="8005" shutdown="SHUTDOWN">
>   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
> 
>   <Listener className="org.apache.catalina.security.SecurityListener"
> minimumUmask="" />
>   <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on" />
>   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"
> />
>   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
> />
>   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"
> />
> 
>   <Service name="Catalina">
> 
>     <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
>         maxThreads="20" minSpareThreads="4"/>
> 
>     <Connector port="80" protocol="HTTP/1.1"
>                connectionTimeout="3000"
>                redirectPort="443" executor="tomcatThreadPool" />
> 
>     <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
>                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
>                clientAuth="false" sslProtocol="TLS" executor="tomcatThreadPool"
>                KeystoreFile="***" KeystorePass="***"/>
> 
>     <Engine name="Catalina" defaultHost="localhost">
> 
>       <Host name="localhost"  appBase="webapps"
>             unpackWARs="true" autoDeploy="true">
> 
>         <Valve className="org.apache.catalina.valves.RemoteIpValve"
>             protocolHeader="x-forwarded-proto" ></Valve>
> 
> 
>         <!-- Access log processes all example.
>              Documentation at: /docs/config/valve.html
>              Note: The pattern used is equivalent to using pattern="common" -->
>         <Valve className="org.apache.catalina.valves.AccessLogValve"
> directory="logs"
>                prefix="localhost_access_log." suffix=".log"
> requestAttributesEnabled="true"
>                pattern="combined" />
> 
>       </Host>
>     </Engine>
>   </Service>
> </Server>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


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


Mime
View raw message