Bug #30637 java.lang.OutOfMemoryError: Java heap space
Submitted: 26 Aug 2007 4:45 Modified: 25 Jan 2008 20:01
Reporter: Gary Whizin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Server Severity:S1 (Critical)
Version:1.2.0.7355 - 1.0.2.7481 OS:Any
Assigned to: Mark Matthews CPU Architecture:Any

[26 Aug 2007 4:45] Gary Whizin
Description:
java.lang.OutOfMemoryError: Java heap space (see attachments)

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18274 gwhizin2  15   0  189m  49m 4332 S   99  2.4   2:16.01 mysqld
18296 gwhizin2  15   0  773m 121m  17m S   84  6.0   3:00.85 java

NOTE: had to kill -9 java process

How to repeat:
install build (as always)
fire up 14 agents (as always)
schedule all platinum rules (as always)
setup SMTP notifications (as always)
[26 Aug 2007 4:47] Gary Whizin
Pending Jobs
37,983
[27 Aug 2007 4:39] Darren Oldag
each servlet request (including every heartbeat) was creating 
a new tomcat session.  this, depending on the machine and the
ability to timeout sessions, could lead to an out of memory 
situation.
[27 Aug 2007 4:41] Darren Oldag
committed to trunk, awaiting review for push into release branch.
[29 Aug 2007 0:49] Mark Matthews
This is in the release branch as of r7321.
[30 Aug 2007 7:47] Gary Whizin
Latest error occurred when I clicked on Events tab. Same error is logged in the Misc log:

Error Message
java.lang.NullPointerException
Stack Trace
com.mysql.merlin.ui.actions.monitor.dashboard.Dashboard.execute(Dashboard.java:177)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.mysql.merlin.ui.interceptors.InitializeInterceptor.intercept(InitializeInterceptor.java:57)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.mysql.merlin.ui.interceptors.AuthenticationInterceptor.intercept(AuthenticationInterceptor.java:92)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)

See also support support zip (attached)
[30 Aug 2007 7:49] Gary Whizin
Note the the exception now occurs if I click Monitor or Advisor (but no longer Event, not on the other pages either)
[12 Sep 2007 13:13] Carsten Segieth
- occurred again in a RH4_x86 server (version 1.2.0.7481 - first edition), with ~ 80 agents connected

- server was running for ~ 5 1/2 days until the problem occurred last night

- server logs, mysqldump and java heapdump stored in https://intranet.mysql.com/~csegieth/bugs/30637/
[12 Sep 2007 13:17] Carsten Segieth
I forgot to note that I could see a lot of 'java heap space' in the catalina.out
[22 Sep 2007 8:02] Darren Oldag
i *think* mark looked at this and determined it was a large graph query that sucked all the memory.
[22 Sep 2007 8:05] Mark Matthews
Darren's correct. The heap was full of graph-related instances.
[28 Sep 2007 20:52] Gary Whizin
Reproduced when looking at graph of 80 servers times 4 days (will try to prevent long operations from being attempted)
[28 Nov 2007 20:05] Gary Whizin
graph issue is now #32424
[25 Jan 2008 20:01] Mark Matthews
Moved to a new bug, as the graph issue that got added to this bug is a separate issue.