Bug #40870 | Stack trace during setup with non-unique admin and agent usernames | ||
---|---|---|---|
Submitted: | 19 Nov 2008 21:50 | Modified: | 14 Jan 2009 13:13 |
Reporter: | Mark Matthews | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Enterprise Monitor: Web | Severity: | S2 (Serious) |
Version: | 2.0.7101 | OS: | Any |
Assigned to: | Josh Sled | CPU Architecture: | Any |
[19 Nov 2008 21:50]
Mark Matthews
[19 Nov 2008 21:53]
Miles Crawford
This puts the installation in a very odd state too - going to the dashboard url presents just one form for user info entry, but no save button to proceed with. It looks possible that having Admin set up but not Agent is an unanticipated state in the UI.
[19 Nov 2008 21:57]
Diego Medina
Verified as described.
[19 Nov 2008 22:24]
Marcos Palacios
Error Message User "agent" already exists. Stack Trace com.mysql.etools.monitor.bo.UserManager.createUser(UserManager.java:69) com.mysql.etools.monitor.bo.UserManager.createUser(UserManager.java:61) com.mysql.etools.monitor.bo.UserManager.createUser(UserManager.java:31) com.mysql.merlin.ui.actions.DoSetup.executeInner(DoSetup.java:332) com.mysql.merlin.ui.actions.BaseSubmitAction.exec(BaseSubmitAction.java:49) 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.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.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) org.apache.struts2.interceptor.TokenInterceptor.handleValidToken(TokenInterceptor.java:172) org.apache.struts2.interceptor.TokenInterceptor.doIntercept(TokenInterceptor.java:138) 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.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)
[20 Nov 2008 21:12]
Josh Sled
revno: 6500 revision-id: jsled@asynchronous.org-20081120211101-53tq9gidlhsle4gr parent: jsled@asynchronous.org-20081120193905-o8y8agb70uco4hsi committer: Josh Sled <jsled@asynchronous.org> branch nick: 2.0 timestamp: Thu 2008-11-20 16:11:01 -0500 message: Bug#40870: validate the admin and agent usernames are different
[5 Dec 2008 18:43]
Marcos Palacios
Verified fixed in service manager build 2.0.0.7119.
[14 Jan 2009 13:13]
Tony Bedford
An entry was added to the 2.0 changelog: Although there was a unique constraint on the user name, it was not enforced during first-time setup. This resulted in a stack trace being produced, rather than a more user-friendly error message, if the same name was used for the admin and agent accounts.