Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-10951

HASessionStateService can sometimes start before ClusterPartition is started

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • EAP_EWP 5.3.0.ER1
    • EAP_EWP 5.3.0.ER1
    • Clustering
    • None
    • Hide
      In previous versions of JBoss EAP 5 it was found that in some cases the HASessionStateService could start before the ClusterPartition was. This lead to NullPointerExceptions in org.jboss.ha.hasessionstate.server.HASessionStateImpl.localTakeOwnership(HASessionStateImpl.java:436) since the session#owner is null at that time. This, in turn, leade to NoSuchObjectException when trying to reach a SFSB clustered bean.

      Attributes in the JASessionStateService dependency have been refined to ensure that the HAPartition is started before the service is. This resolves the issue.
      Show
      In previous versions of JBoss EAP 5 it was found that in some cases the HASessionStateService could start before the ClusterPartition was. This lead to NullPointerExceptions in org.jboss.ha.hasessionstate.server.HASessionStateImpl.localTakeOwnership(HASessionStateImpl.java:436) since the session#owner is null at that time. This, in turn, leade to NoSuchObjectException when trying to reach a SFSB clustered bean. Attributes in the JASessionStateService dependency have been refined to ensure that the HAPartition is started before the service is. This resolves the issue.
    • Needs More Info
    • NEW

      In some cases HASessionStateService can start before ClusterPartition is started which leads to NPE in org.jboss.ha.hasessionstate.server.HASessionStateImpl.localTakeOwnership(HASessionStateImpl.java:436) since the session#owner is null that time, see the stacktrace below. This leads to NoSuchObjectException when trying to reach a SFSB clustered bean.

      The ClusterPartition has always to start before the HASessionStateService as the HASessionStateService takes a node name out of the partition and fails to work if it is null.

      2014-01-08 16:45:35,437 DEBUG [org.jboss.ejb.plugins.AbstractInstanceCache] (WorkerThread#2[10.34.29.179:38574]) Activation failure, id=10.34.29.179:1099:hq6re3y5-cr
      java.lang.NullPointerException
              at org.jboss.ha.hasessionstate.server.HASessionStateImpl.localTakeOwnership(HASessionStateImpl.java:436)
              at org.jboss.ha.hasessionstate.server.HASessionStateImpl.getStateWithOwnership(HASessionStateImpl.java:407)
              at org.jboss.ejb.plugins.StatefulHASessionPersistenceManager.activateSession(StatefulHASessionPersistenceManager.java:157)
              at org.jboss.ejb.plugins.StatefulSessionInstanceCache.activate(StatefulSessionInstanceCache.java:113)
              at org.jboss.ejb.plugins.StatefulHASessionInstanceCache.get(StatefulHASessionInstanceCache.java:114)
              at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:252)
              at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121)
              at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350)
              at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181)
              at org.jboss.ejb.plugins.security.PreSecurityInterceptor.process(PreSecurityInterceptor.java:100)
              at org.jboss.ejb.plugins.security.PreSecurityInterceptor.invoke(PreSecurityInterceptor.java:84)
              at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
              at org.jboss.ejb.plugins.CleanShutdownInterceptor.invoke(CleanShutdownInterceptor.java:282)
              at org.jboss.ejb.plugins.AbstractInterceptor.invoke(AbstractInterceptor.java:112)
              at org.jboss.ha.framework.test.ExplicitFailoverServerInterceptor.invoke(ExplicitFailoverServerInterceptor.java:90)
              at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138)
              at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:650)
              at org.jboss.ejb.Container.invoke(Container.java:1092)
              at sun.reflect.GeneratedMethodAccessor314.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
              at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
              at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
              at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
              at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
              at org.jboss.invocation.unified.server.UnifiedInvokerHA.invoke(UnifiedInvokerHA.java:149)
              at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:967)
              at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:797)
              at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:750)
              at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:586)
              at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234)
      

              istudens@redhat.com Ivo Studensky
              istudens@redhat.com Ivo Studensky
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: