Uploaded image for project: 'Identity Provider'
  1. Identity Provider
  2. IDP-1032

NullPointerException in JDBCPersistentIdStoreEx when MySQL is busy

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.2.1
    • Fix Version/s: 3.3.0
    • Component/s: NameID Handling
    • Labels:
    • Operating System:
      Multiple
    • Java Version:
      Oracle Java 8
    • Servlet Container:
      Apache Tomcat 8

      Description

      When our MySQL which stores the persistent IDs gets overloaded the IDP starts to throw NPEs and seemingly random people can't login and get an NPE error in their browser.

      We have not been able to correlate why some SPs work for a user who gets an NPE on another SP.

      Log:

      ERROR [net.shibboleth.idp.saml.profile:-2] Uncaught runtime exception
      #011java.lang.NullPointerException: null
      #011at net.shibboleth.idp.saml.nameid.impl.JDBCPersistentIdStoreEx.getBySourceValue(JDBCPersistentIdStoreEx.java:615)
      #011at net.shibboleth.idp.saml.nameid.impl.StoredPersistentIdGenerationStrategy.generate(StoredPersistentIdGenerationStrategy.java:160)
      #011at net.shibboleth.idp.saml.attribute.resolver.impl.StoredIDDataConnector.doDataConnectorResolve(StoredIDDataConnector.java:230)
      #011at net.shibboleth.idp.attribute.resolver.AbstractDataConnector.doResolve(AbstractDataConnector.java:126)
      #011at net.shibboleth.idp.attribute.resolver.AbstractDataConnector.doResolve(AbstractDataConnector.java:39)
      #011at net.shibboleth.idp.attribute.resolver.AbstractResolverPlugin.resolve(AbstractResolverPlugin.java:189)
      #011at net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl.resolveDataConnector(AttributeResolverImpl.java:330)
      #011at net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl.resolveDependencies(AttributeResolverImpl.java:380)
      #011at net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl.resolveAttributeDefinition(AttributeResolverImpl.java:264)
      #011at net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl.resolveAttributes(AttributeResolverImpl.java:198)
      #011at net.shibboleth.idp.profile.impl.ResolveAttributes.doExecute(ResolveAttributes.java:246)
      #011at org.opensaml.profile.action.AbstractProfileAction.execute(AbstractProfileAction.java:118)
      #011at net.shibboleth.idp.profile.AbstractProfileAction.doExecute(AbstractProfileAction.java:154)
      #011at net.shibboleth.idp.profile.AbstractProfileAction.execute(AbstractProfileAction.java:126)
      #011at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
      #011at org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)
      #011at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
      #011at org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
      #011at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.SubflowState.handleEvent(SubflowState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.endActiveFlowSession(FlowExecutionImpl.java:414)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.endActiveFlowSession(RequestControlContextImpl.java:238)
      #011at org.springframework.webflow.engine.EndState.doEnter(EndState.java:107)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.SubflowState.handleEvent(SubflowState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.endActiveFlowSession(FlowExecutionImpl.java:414)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.endActiveFlowSession(RequestControlContextImpl.java:238)
      #011at org.springframework.webflow.engine.EndState.doEnter(EndState.java:107)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.SubflowState.handleEvent(SubflowState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.endActiveFlowSession(FlowExecutionImpl.java:414)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.endActiveFlowSession(RequestControlContextImpl.java:238)
      #011at org.springframework.webflow.engine.EndState.doEnter(EndState.java:107)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Flow.start(Flow.java:527)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.start(RequestControlContextImpl.java:234)
      #011at org.springframework.webflow.engine.SubflowState.doEnter(SubflowState.java:101)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Flow.start(Flow.java:527)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.start(RequestControlContextImpl.java:234)
      #011at org.springframework.webflow.engine.SubflowState.doEnter(SubflowState.java:101)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.SubflowState.handleEvent(SubflowState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.endActiveFlowSession(FlowExecutionImpl.java:414)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.endActiveFlowSession(RequestControlContextImpl.java:238)
      #011at org.springframework.webflow.engine.EndState.doEnter(EndState.java:107)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
      #011at org.springframework.webflow.engine.State.enter(State.java:194)
      #011at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
      #011at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
      #011at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
      #011at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
      #011at org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:231)
      #011at org.springframework.webflow.engine.ViewState.resume(ViewState.java:195)
      #011at org.springframework.webflow.engine.Flow.resume(Flow.java:537)
      #011at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)
      #011at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
      #011at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:228)
      #011at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
      #011at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
      #011at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
      #011at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
      #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
      #011at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
      #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
      #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      #011at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      #011at net.shibboleth.idp.log.SLF4JMDCServletFilter.doFilter(SLF4JMDCServletFilter.java:72)
      #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      #011at net.shibboleth.utilities.java.support.net.RequestResponseContextFilter.doFilter(RequestResponseContextFilter.java:60)
      #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      #011at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
      #011at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
      #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      #011at net.shibboleth.utilities.java.support.net.CookieBufferingFilter.doFilter(CookieBufferingFilter.java:67)
      #011at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
      #011at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      #011at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:203)
      #011at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
      #011at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      #011at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
      #011at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
      #011at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
      #011at se.su.it.tomcat.valves.HeaderEncodingValve.invoke(HeaderEncodingValve.java:37)
      #011at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
      #011at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:844)
      #011at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
      #011at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
      #011at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
      #011at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      #011at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      #011at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      #011at java.lang.Thread.run(Thread.java:745)
      WARN [org.opensaml.profile.action.impl.LogEvent:76] An error event occurred while processing the request: RuntimeException
      

        Attachments

          Activity

            People

            Assignee:
            cantor.2@osu.edu Scott Cantor
            Reporter:
            simlu@su.se Simon Lundström
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 15 minutes
                15m