Bug #55896 MEM crashing on attempted ldap login
Submitted: 10 Aug 2010 22:32 Modified: 9 Nov 2015 15:24
Reporter: Jonathon Coombes Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Enterprise Monitor: Server Severity:S2 (Serious)
Version:2.2.2.1729 OS:MacOS (10.5.8)
Assigned to: Assigned Account CPU Architecture:Any
Tags: crash, LDAP, mem, Merlin

[10 Aug 2010 22:32] Jonathon Coombes
Description:
On testing ldap against ADAM I started to get MEM crashing whenever I attempted to login as an ldap user. I reset the MEM ldap settings back to original, but still the crashes happened. After I restarted MEM, the crashes stopped.

Error Message
1
Toggle Stack Trace
1
com.mysql.etools.monitor.bo.LdapAuthenticator.getUserByPattern(LdapAuthenticator.java:1273)
com.mysql.etools.monitor.bo.LdapAuthenticator.getUser(LdapAuthenticator.java:1233)
com.mysql.etools.monitor.bo.LdapAuthenticator.authenticate(LdapAuthenticator.java:387)
com.mysql.etools.monitor.bo.LdapAuthenticator.authenticate(LdapAuthenticator.java:428)
com.mysql.etools.monitor.bo.UserManager.externalAuthenticate(UserManager.java:265)
com.mysql.etools.monitor.bo.UserManager.authenticate(UserManager.java:69)
com.mysql.etools.monitor.bo.UserManager.authenticate(UserManager.java:38)
com.mysql.merlin.ui.actions.DoAuth.executeInner(DoAuth.java:60)
com.mysql.merlin.ui.actions.BaseSubmitAction.exec(BaseSubmitAction.java:51)
com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2013)
com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2012)
com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:1996)
com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:2011)
sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
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.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:81)
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.merlin.server.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(Thread.java:637)

How to repeat:
Not sure, other than it is obviously related to ldap login

Suggested fix:
None
[10 Aug 2010 22:36] MySQL Verification Team
The log based stack trace:

2010-08-10 14:24:02,877 ERROR [http-18080-7:com.mysql.ui.com.mysql.merlin.ui.actions.BaseAction] setException, action: com.mysql.merlin.ui.actions.DoAuth
java.lang.ArrayIndexOutOfBoundsException: 1
	at com.mysql.etools.monitor.bo.LdapAuthenticator.getUserByPattern(LdapAuthenticator.java:1273)
	at com.mysql.etools.monitor.bo.LdapAuthenticator.getUser(LdapAuthenticator.java:1233)
	at com.mysql.etools.monitor.bo.LdapAuthenticator.authenticate(LdapAuthenticator.java:387)
	at com.mysql.etools.monitor.bo.LdapAuthenticator.authenticate(LdapAuthenticator.java:428)
	at com.mysql.etools.monitor.bo.UserManager.externalAuthenticate(UserManager.java:265)
	at com.mysql.etools.monitor.bo.UserManager.authenticate(UserManager.java:69)
	at com.mysql.etools.monitor.bo.UserManager.authenticate(UserManager.java:38)
	at com.mysql.merlin.ui.actions.DoAuth.executeInner(DoAuth.java:60)
	at com.mysql.merlin.ui.actions.BaseSubmitAction.exec(BaseSubmitAction.java:51)
	at com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2013)
	at com.mysql.merlin.ui.actions.BaseAction$1.call(BaseAction.java:2012)
	at com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:1996)
	at com.mysql.merlin.ui.actions.BaseAction.execute(BaseAction.java:2011)
	at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
	at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.mysql.merlin.ui.interceptors.InitializeInterceptor.intercept(InitializeInterceptor.java:82)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:1)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:81)
	at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.mysql.merlin.server.RequestCounterFilter.doFilter(RequestCounterFilter.java:117)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.mysql.merlin.ui.filters.AccessLogFilter.doFilter(AccessLogFilter.java:56)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:637)
[9 Nov 2015 15:24] Mark Leith
Not an issue in 3.x.