[jboss-jira] [JBoss JIRA] (AS7-3716) Suspecting EJB remote client server affinity to be broken

jaikiran pai (JIRA) jira-events at lists.jboss.org
Sat Feb 11 09:39:01 EST 2012


    [ https://issues.jboss.org/browse/AS7-3716?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665910#comment-12665910 ] 

jaikiran pai commented on AS7-3716:
-----------------------------------

I've been trying to analyze the client logs reference in this JIRA. However, the only detail that stands out in the logs is this (repeated) NPE in a bean implementation:

{code}
Caused by: java.lang.NullPointerException
	at org.jboss.test.clusterbench.common.ejb.CommonStatefulSBImpl.getSerialAndIncrement(CommonStatefulSBImpl.java:27)
{code}

The source for CommonStatefulSBImpl is here https://github.com/rhusar/clusterbench/blob/master/clusterbench-common/src/main/java/org/jboss/test/clusterbench/common/ejb/CommonStatefulSBImpl.java and some relevant piece from that class is as follows:

{code:java}
public class CommonStatefulSBImpl implements CommonStatefulSB {

    private SerialBean bean;
    private static final Logger log = Logger.getLogger(CommonStatefulSBImpl.class.getName());

    @PostConstruct
    private void init() {
        bean = new SerialBean();
        log.log(Level.INFO, "New SFSB created: {0}.", this);
    }

...
    @Override
    public int getSerialAndIncrement() {
        return bean.getSerialAndIncrement();
    }

{code}

So the only possible way for the "bean" member variable (which by the way, is a POJO) to be null is if the @PostConstruct was not called or if a passivated bean instance of CommonStatefulSBImpl was not properly unmarshalled or some similar thing.

As for the affinity logic being broken or leading to this issue, I think I see an issue in our logic which can possibly lead to the invocation ending up on nodes on which the session wasn't created (which isn't really a bad thing but the whole intention of affinity was to avoid issues like these).

I'm going to discuss this on mail with David, Jason, Paul and include you too.

By the way, how many nodes does this cluster have?
                
> Suspecting EJB remote client server affinity to be broken
> ---------------------------------------------------------
>
>                 Key: AS7-3716
>                 URL: https://issues.jboss.org/browse/AS7-3716
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: Clustering, EJB
>    Affects Versions: 7.1.0.Final
>            Reporter: Radoslav Husar
>            Assignee: jaikiran pai
>            Priority: Blocker
>             Fix For: 7.1.1.Final
>
>
> I am seeing ejb sessions not found in a cache, looks like the client is just not connecting to the correct (same) node and the session has not yet been replicated.
> I have never seen this when using Servlet as invocation method for (local) EJBs, thus I blame the remote client.
> {noformat}
> 09:36:35,460 INFO  [org.jboss.as.ejb3] (EJB default - 10) JBAS014101: Failed to find {[-125, -49, -119, -124, 127, 13, 64, -111, -65, -22, 109, -71, -85, -44, 70, 35]} in cache
> 09:36:35,460 INFO  [org.jboss.as.ejb3] (EJB default - 7) JBAS014101: Failed to find {[-82, 118, -38, -43, -10, -125, 71, -61, -65, -31, -2, -47, 58, 55, -81, -22]} in cache
> 09:36:35,465 INFO  [org.jboss.as.ejb3] (EJB default - 1) JBAS014101: Failed to find {[-126, -109, 43, 94, -99, -1, 76, -27, -126, 26, 67, 33, 75, 87, 16, -94]} in cache
> 09:36:35,465 INFO  [org.jboss.as.ejb3] (EJB default - 3) JBAS014101: Failed to find {[28, -44, -17, 81, -31, -24, 70, -18, -93, 70, -111, -85, 0, -79, -122, -125]} in cache
> 09:36:35,465 INFO  [org.jboss.as.ejb3] (EJB default - 4) JBAS014101: Failed to find {[-47, -107, 24, 16, 82, 48, 75, 18, -103, 18, 57, 82, 107, 76, -111, 63]} in cache
> 09:36:35,465 INFO  [org.jboss.as.ejb3] (EJB default - 8) JBAS014101: Failed to find {[-4, 23, -92, 114, -66, -34, 77, -114, -81, -109, -36, -14, -94, -70, 52, 80]} in cache
> 09:36:35,465 INFO  [org.jboss.as.ejb3] (EJB default - 2) JBAS014101: Failed to find {[93, 56, 102, -118, -112, 34, 74, -102, -90, -83, 71, 59, -109, 52, -24, -74]} in cache
> 09:36:35,466 INFO  [org.jboss.as.ejb3] (EJB default - 5) JBAS014101: Failed to find {[-36, 51, -36, -12, 18, -36, 64, 74, -113, 120, -42, 20, -61, -79, 94, -6]} in cache
> 09:36:35,466 INFO  [org.jboss.as.ejb3] (EJB default - 6) JBAS014101: Failed to find {[9, -4, 114, 124, 24, -62, 68, -53, -102, -75, -98, -65, -8, -116, -107, 22]} in cache
> 09:36:35,469 INFO  [org.jboss.as.ejb3] (EJB default - 9) JBAS014101: Failed to find {[83, -8, 102, -47, -97, 47, 65, 84, -85, -66, -108, -74, -109, -103, 114, 14]} in cache
> 09:36:35,461 ERROR [org.jboss.ejb3.invocation] (EJB default - 7) JBAS014134: EJB Invocation failed on component RemoteStatefulSBImpl for method public abstract int org.jboss.test.clusterbench.common.ejb.CommonStatefulSB.getSerialAndIncrement(): javax.ejb.EJBException: java.lang.NullPointerException
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:166) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropogatingInterceptor.processInvocation(EJBRemoteTransactionPropogatingInterceptor.java:80) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:300) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$200(MethodInvocationMessageHandler.java:64) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:194) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [rt.jar:1.6.0_30]
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [rt.jar:1.6.0_30]
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138) [rt.jar:1.6.0_30]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
> 	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
> 	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> Caused by: java.lang.NullPointerException
> 	at org.jboss.test.clusterbench.common.ejb.CommonStatefulSBImpl.getSerialAndIncrement(CommonStatefulSBImpl.java:27) [clusterbench-common.jar:]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_30]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_30]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_30]
> 	at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_30]
> 	at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:127) [jboss-as-weld-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:135) [jboss-as-weld-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.jpa.interceptor.SFSBInvocationInterceptor.processInvocation(SFSBInvocationInterceptor.java:58)
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ejb3.component.stateful.StatefulSessionSynchronizationInterceptor.processInvocation(StatefulSessionSynchronizationInterceptor.java:156) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:103) [jboss-as-weld-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ejb3.component.stateful.StatefulComponentInstanceInterceptor.processInvocation(StatefulComponentInstanceInterceptor.java:70) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final.jar:1.1.1.Final]
> 	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228) [jboss-as-ejb3-7.1.0.Final-SNAPSHOT.jar:7.1.0.Final-SNAPSHOT]
> 	... 25 more
> {noformat}
> Possibly related issues:
> https://issues.jboss.org/browse/AS7-3215
> https://issues.jboss.org/browse/AS7-2886

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list