Bug #41164 NPE in Monitor tab

Submitted: 1 Dec 2008 22:57 Modified: 29 Jan 2009 11:57
Reporter: Josh Sled Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Monitor: Web Severity:S3 (Non-critical)
Version:2.0.0.7102 OS:Any
Assigned to: Eric Herman CPU Architecture:Any

[1 Dec 2008 22:57] Josh Sled
Description:
(Quoted from support issue https://support.mysql.com/view.php?id=31751):

I upgraded from my mysql monitor server from 1.3 to 2.0.0.7102. The "Monitor" tab will load initially, but after clicking on a specific server in the list (a 64-bit MySQL server running a 32-bit mysql-monitor-agent), I immediately receive the error below. By logging out, and back in, I can get the Monitor tab working again. We're testing this before rolling it into production, so any help is appreciated. This happens on IE7 and Firefox 3.0.4, with Java Version 6 update 10 on Windows XP SP3.

I'm willing to test upgrading the agent to a 64-bit agent if you think that'll help.

Error Message
java.lang.NullPointerException
Hide Stack Trace
com.mysql.merlin.ui.containers.FileSystemContainer.<init>(FileSystemContainer.java:46)
com.mysql.merlin.ui.containers.FileSystemContainer.toContainers(FileSystemContainer.java:78)
com.mysql.merlin.ui.containers.OperatingSystemContainer.<init>(OperatingSystemContainer.java:98)
com.mysql.merlin.ui.containers.ServerContainer.<init>(ServerContainer.java:147)
com.mysql.merlin.ui.helper.UiManager.fromCache(UiManager.java:96)
com.mysql.merlin.ui.actions.BaseAction.getSelectedServer(BaseAction.java:1229)
com.mysql.merlin.ui.actions.monitor.dashboard.Dashboard.initSelectedServer(Dashboard.java:367)
com.mysql.merlin.ui.actions.monitor.dashboard.Dashboard.executeInner(Dashboard.java:165)
com.mysql.merlin.ui.actions.BaseViewAction.exec(BaseViewAction.java:35)
com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:1715)
com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:1714)
com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:1698)
com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:1713)
sun.reflect.GeneratedMethodAccessor173.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
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:1)
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:1)
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:82)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
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:118)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
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:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.mysql.util.RequestCounterFilter.doFilter(RequestCounterFilter.java:117)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.mysql.merlin.ui.filters.AccessLogFilter.doFilter(AccessLogFilter.java:56)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Unknown Source)

How to repeat:
get (un)lucky on the race to populate/report the filesystem data.
[10 Dec 2008 17:47] Eric Herman
wrote test & pushed fix to trunk;
[11 Dec 2008 20:20] Marcos Palacios
Verified fixed in build 2.0.1.7125.
[14 Jan 2009 13:43] Tony Bedford
An entry was added to the 2.0 changelog:

Although the Monitor tab loaded initially, after a 64-bit MySQL server running a 32-bit MySQL Monitor Agent was clicked, a Null Pointer Exception was generated.
[19 Jan 2009 17:34] Eric Herman
Kris reported this in 2.0.1.7125.

We need to re-test, and I need to verify exactly when the commit to trunk was pushed to the 2.0 release branch.
[22 Jan 2009 21:42] Marcos Palacios
The commit to trunk was pushed to the 2.0 release branch on 1/21/09 17:01 hrs CET. The fix went into the 2.0.4.7138 build.
[22 Jan 2009 21:47] Marcos Palacios
Please document that the fix *actually* went into the 2.0.4.7138 build.
[29 Jan 2009 11:57] Tony Bedford
The changelog entry was modified to reflect that the fix was made in 2.0.4.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.042 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.