Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-1306

EJB session creation frequently fails with SuspectedException javax.transaction.RollbackException: Exception rolled back, status is: 9

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 8.0.0.Alpha2
    • None
    • Clustering
    • None

    Description

      I've a testcase which has the following flow:

      1) Start 2 servers (node0 and node1)in clustered mode (standalone-ha.xml)
      2) deploy a deployment to the servers contains the same SFSB which is marked as @Clustered. The SFSB has a @PreDestroy which intentionally does a Thread.sleep to slow down the undeployment process (whenever it happens)
      3) Keep doing lookups for the SFSB from a remote client, which essentially translates into session creation on the servers
      4) While #3 is happening, undeploy the application from node0. Since the SFSB has a Thread.sleep, the undeployment takes some time to actually finish.
      5) In the meantime, the session creation requests from the remote client happen on the other functional node (node1) but after a while, node1 starts throwing the following exception:

      17:05:23,505 ERROR [org.infinispan.transaction.TransactionCoordinator] (EJB default - 7) Error while processing prepare: org.infinispan.remoting.transport.jgroups.SuspectException: Node node-0/ejb was suspected
      	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:184)
      	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:515)
      	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:169)
      	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:190)
      	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:247)
      	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:234)
      	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:229)
      	at org.infinispan.remoting.rpc.RpcManagerImpl.broadcastRpcCommand(RpcManagerImpl.java:208)
      	at org.infinispan.interceptors.ReplicationInterceptor.broadcastPrepare(ReplicationInterceptor.java:109)
      	at org.infinispan.interceptors.ReplicationInterceptor.visitPrepareCommand(ReplicationInterceptor.java:101)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:106)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.invokeNextAndCommitIf1Pc(AbstractTxLockingInterceptor.java:108)
      	at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitPrepareCommand(OptimisticLockingInterceptor.java:135)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:58)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.TxInterceptor.invokeNextInterceptorAndVerifyTransaction(TxInterceptor.java:128)
      	at org.infinispan.interceptors.TxInterceptor.visitPrepareCommand(TxInterceptor.java:115)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitPrepareCommand(TransactionSynchronizerInterceptor.java:61)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:216)
      	at org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:189)
      	at org.infinispan.statetransfer.StateTransferInterceptor.visitPrepareCommand(StateTransferInterceptor.java:93)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:128)
      	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:92)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:132)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:118)
      	at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:92)
      	at org.infinispan.commands.AbstractVisitor.visitPrepareCommand(AbstractVisitor.java:126)
      	at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:124)
      	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:343)
      	at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:141)
      	at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:123)
      	at org.infinispan.transaction.synchronization.SynchronizationAdapter.beforeCompletion(SynchronizationAdapter.java:68)
      	at org.infinispan.transaction.tm.DummyTransaction.notifyBeforeCompletion(DummyTransaction.java:230)
      	at org.infinispan.transaction.tm.DummyTransaction.runPrepare(DummyTransaction.java:242)
      	at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:86)
      	at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:102)
      	at org.infinispan.batch.BatchContainer.resolveTransaction(BatchContainer.java:123)
      	at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:105)
      	at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:86)
      	at org.infinispan.CacheImpl.endBatch(CacheImpl.java:684)
      	at org.infinispan.AbstractDelegatingCache.endBatch(AbstractDelegatingCache.java:80)
      	at org.jboss.as.clustering.infinispan.invoker.BatchCacheInvoker.invoke(BatchCacheInvoker.java:53)
      	at org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:81)
      	at org.jboss.as.clustering.ejb3.cache.backing.infinispan.InfinispanBackingCacheEntryStore.insert(InfinispanBackingCacheEntryStore.java:176)
      	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.insert(SerializationGroupMemberContainer.java:304)
      	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.insert(SerializationGroupMemberContainer.java:51)
      	at org.jboss.as.ejb3.cache.impl.backing.PassivatingBackingCacheImpl.create(PassivatingBackingCacheImpl.java:122)
      	at org.jboss.as.ejb3.cache.impl.GroupAwareCache.create(GroupAwareCache.java:67)
      	at org.jboss.as.ejb3.cache.impl.GroupAwareCache.create(GroupAwareCache.java:41)
      	at org.jboss.as.ejb3.component.stateful.StatefulSessionComponent.createSession(StatefulSessionComponent.java:238)
      	at org.jboss.as.ejb3.remote.protocol.versionone.SessionOpenRequestHandler$SessionIDGeneratorTask.run(SessionOpenRequestHandler.java:146)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_15]
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_15]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_15]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_15]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_15]
      	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_15]
      	at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.0.Final.jar:2.1.0.Final]
      Caused by: SuspectedException
      	at org.jgroups.blocks.MessageDispatcher.sendMessage(MessageDispatcher.java:377)
      	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:301)
      	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:179)
      	... 93 more
      
      17:05:23,515 ERROR [org.infinispan.transaction.tm.DummyTransaction] (EJB default - 7) ISPN000109: beforeCompletion() failed for SynchronizationAdapter{localTransaction=LocalTransaction{remoteLockedNodes=null, isMarkedForRollback=false, lockedKeys=null, backupKeyLocks=null, topologyId=3, isFromStateTransfer=false} org.infinispan.transaction.synchronization.SyncLocalTransaction@4f} org.infinispan.transaction.synchronization.SynchronizationAdapter@6e: org.infinispan.CacheException: Could not prepare. 
      	at org.infinispan.transaction.synchronization.SynchronizationAdapter.beforeCompletion(SynchronizationAdapter.java:70)
      	at org.infinispan.transaction.tm.DummyTransaction.notifyBeforeCompletion(DummyTransaction.java:230)
      	at org.infinispan.transaction.tm.DummyTransaction.runPrepare(DummyTransaction.java:242)
      	at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:86)
      	at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:102)
      	at org.infinispan.batch.BatchContainer.resolveTransaction(BatchContainer.java:123)
      	at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:105)
      	at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:86)
      	at org.infinispan.CacheImpl.endBatch(CacheImpl.java:684)
      	at org.infinispan.AbstractDelegatingCache.endBatch(AbstractDelegatingCache.java:80)
      	at org.jboss.as.clustering.infinispan.invoker.BatchCacheInvoker.invoke(BatchCacheInvoker.java:53)
      	at org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:81)
      	at org.jboss.as.clustering.ejb3.cache.backing.infinispan.InfinispanBackingCacheEntryStore.insert(InfinispanBackingCacheEntryStore.java:176)
      	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.insert(SerializationGroupMemberContainer.java:304)
      	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.insert(SerializationGroupMemberContainer.java:51)
      	at org.jboss.as.ejb3.cache.impl.backing.PassivatingBackingCacheImpl.create(PassivatingBackingCacheImpl.java:122)
      	at org.jboss.as.ejb3.cache.impl.GroupAwareCache.create(GroupAwareCache.java:67)
      	at org.jboss.as.ejb3.cache.impl.GroupAwareCache.create(GroupAwareCache.java:41)
      	at org.jboss.as.ejb3.component.stateful.StatefulSessionComponent.createSession(StatefulSessionComponent.java:238)
      	at org.jboss.as.ejb3.remote.protocol.versionone.SessionOpenRequestHandler$SessionIDGeneratorTask.run(SessionOpenRequestHandler.java:146)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_15]
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_15]
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_15]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_15]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_15]
      	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_15]
      	at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.0.Final.jar:2.1.0.Final]
      Caused by: javax.transaction.xa.XAException
      	at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:161)
      	at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:123)
      	at org.infinispan.transaction.synchronization.SynchronizationAdapter.beforeCompletion(SynchronizationAdapter.java:68)
      	... 26 more
      

      This causes the session creation to fail on node1 (which was expected to be functional).

      The entire relevant log is attached.

      Attachments

        Issue Links

          Activity

            People

              pferraro@redhat.com Paul Ferraro
              jaikiran Jaikiran Pai (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: