Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-12795

Replicated cache with NON_XA transaction fails to syncronize cache data upon Wildfly v.21 (same with v.22) second cluster node start.

XMLWordPrintable

    • Hide

      In Wildlfy v.22 define a replicated cache with transaction mode NON_XA. 

          <replicated-cache name="opencell-cft-cache" statistics-enabled="true">
              <transaction mode="NON_XA"/>
          </replicated-cache>

      Populate cache and start a second cluster node.

      Works in Wildfly v.18 but not v.22.

      Changing transaction to NONE, a second cluster node starts with no errors.

       

      Show
      In Wildlfy v.22 define a replicated cache with transaction mode NON_XA.      <replicated-cache name="opencell-cft-cache" statistics-enabled="true">         <transaction mode="NON_XA"/>     </replicated-cache> Populate cache and start a second cluster node. Works in Wildfly v.18 but not v.22. Changing transaction to NONE, a second cluster node starts with no errors.  
    • Compatibility/Configuration
    • Undefined

      Works perfectly on Wildlfy v.18  (Infinispan 9.4.16) but not on v.21 or v.22.

       

      A standard Wildfly v.22 (same with v.21) configuration using standalone-full-ha.xml running as a cluster of two nodes.

      Cache is configured as:

      <cache-container name="opencell">
          <transport lock-timeout="60000"/>
          <replicated-cache name="opencell-cft-cache" statistics-enabled="true">
              <transaction mode="NON_XA"/>
          </replicated-cache>
      </cache-container>

       

      Cache is accessed this way:

      @Resource(lookup = "java:jboss/infinispan/cache/opencell/opencell-cft-cache")
      private Cache<CacheKeyStr, Map<String, CustomFieldTemplate>> cftsByAppliesTo;

       

      Java version:

      OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

       

      Infinispan fails to synchronize caches when starting a second cluster node because of missing transaction.

       

      16:13:46,141 ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (thread-18,ejb,opencell-node2) ISPN000136: Error executing command PutKeyValueCommand on Cache 'opencell-cft-cache', writing keys [/JobInstance_GenericWorkflowJob]: org.infinispan.commons.CacheException: javax.transaction.InvalidTransactionException: WFTXN0002: Transaction is not a supported instance: TransactionImpl
      Unknown macro: {xid=Xid Unknown macro}
      , status=ACTIVE}16:13:46,141 ERROR [org.infinispan.interceptors.impl.InvocationContextInterceptor] (thread-18,ejb,opencell-node2) ISPN000136: Error executing command PutKeyValueCommand on Cache 'opencell-cft-cache', writing keys [/JobInstance_GenericWorkflowJob]: org.infinispan.commons.CacheException: javax.transaction.InvalidTransactionException: WFTXN0002: Transaction is not a supported instance: TransactionImpl
      Unknown macro: {xid=Xid , status=ACTIVE}
      at org.infinispan@11.0.4.Final//org.infinispan.transaction.impl.TransactionTable.enlist(TransactionTable.java:227) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.TxInterceptor.enlist(TxInterceptor.java:423) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.TxInterceptor.handleWriteCommand(TxInterceptor.java:387) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.TxInterceptor.visitPutKeyValueCommand(TxInterceptor.java:227) at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:63) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitCommand(TransactionSynchronizerInterceptor.java:41) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:190) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateTransferInterceptor.handleTxWriteCommand(StateTransferInterceptor.java:259) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:249) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:96) at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:63) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndFinally(BaseAsyncInterceptor.java:155) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:249) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:210) at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:63) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:128) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:90) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:61) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.DDAsyncInterceptor.visitPutKeyValueCommand(DDAsyncInterceptor.java:59) at org.infinispan@11.0.4.Final//org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:63) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:49) at org.infinispan@11.0.4.Final//org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invokeAsync(AsyncInterceptorChainImpl.java:226) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.invokePut(StateConsumerImpl.java:739) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.doApplyState(StateConsumerImpl.java:676) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.applyChunk(StateConsumerImpl.java:644) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.applyStateIteration(StateConsumerImpl.java:618) at org.infinispan@11.0.4.Final//org.infinispan.statetransfer.StateConsumerImpl.applyState(StateConsumerImpl.java:597) at org.infinispan@11.0.4.Final//org.infinispan.commands.statetransfer.StateResponseCommand.invokeAsync(StateResponseCommand.java:80) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:115) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.invoke(BaseBlockingRunnable.java:100) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.lambda$runAsync$0(BaseBlockingRunnable.java:91) at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2251) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runAsync(BaseBlockingRunnable.java:74) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:41) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.handleRunnable(BasePerCacheInboundInvocationHandler.java:163) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.TxPerCacheInboundInvocationHandler.handle(TxPerCacheInboundInvocationHandler.java:89) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleCacheRpcCommand(GlobalInboundInvocationHandler.java:167) at org.infinispan@11.0.4.Final//org.infinispan.remoting.inboundhandler.GlobalInboundInvocationHandler.handleFromCluster(GlobalInboundInvocationHandler.java:113) at org.infinispan@11.0.4.Final//org.infinispan.remoting.transport.jgroups.JGroupsTransport.processRequest(JGroupsTransport.java:1378) at org.infinispan@11.0.4.Final//org.infinispan.remoting.transport.jgroups.JGroupsTransport.processMessage(JGroupsTransport.java:1302) at org.infinispan@11.0.4.Final//org.infinispan.remoting.transport.jgroups.JGroupsTransport.access$300(JGroupsTransport.java:131) at org.infinispan@11.0.4.Final//org.infinispan.remoting.transport.jgroups.JGroupsTransport$ChannelCallbacks.up(JGroupsTransport.java:1445) at org.jgroups@4.2.5.Final//org.jgroups.JChannel.up(JChannel.java:784) at org.jgroups@4.2.5.Final//org.jgroups.fork.ForkProtocolStack.up(ForkProtocolStack.java:135) at org.jgroups@4.2.5.Final//org.jgroups.stack.Protocol.up(Protocol.java:306) at org.jgroups@4.2.5.Final//org.jgroups.protocols.FORK.up(FORK.java:142) at org.jgroups@4.2.5.Final//org.jgroups.protocols.FRAG3.up(FRAG3.java:160) at org.jgroups@4.2.5.Final//org.jgroups.protocols.FlowControl.up(FlowControl.java:351) at org.jgroups@4.2.5.Final//org.jgroups.protocols.FlowControl.up(FlowControl.java:359) at org.jgroups@4.2.5.Final//org.jgroups.protocols.pbcast.GMS.up(GMS.java:868) at org.jgroups@4.2.5.Final//org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:243) at org.jgroups@4.2.5.Final//org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1049) at org.jgroups@4.2.5.Final//org.jgroups.protocols.UNICAST3.addMessage(UNICAST3.java:772) at org.jgroups@4.2.5.Final//org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:753) at org.jgroups@4.2.5.Final//org.jgroups.protocols.UNICAST3.up(UNICAST3.java:405) at org.jgroups@4.2.5.Final//org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:592) at org.jgroups@4.2.5.Final//org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132) at org.jgroups@4.2.5.Final//org.jgroups.protocols.FailureDetection.up(FailureDetection.java:186) at org.jgroups@4.2.5.Final//org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:254) at org.jgroups@4.2.5.Final//org.jgroups.protocols.MERGE3.up(MERGE3.java:281) at org.jgroups@4.2.5.Final//org.jgroups.protocols.Discovery.up(Discovery.java:300) at org.jgroups@4.2.5.Final//org.jgroups.protocols.TP.passMessageUp(TP.java:1385) at org.jgroups@4.2.5.Final//org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.jboss.as.clustering.common@21.0.2.Final//org.jboss.as.clustering.context.ContextReferenceExecutor.execute(ContextReferenceExecutor.java:49) at org.jboss.as.clustering.common@21.0.2.Final//org.jboss.as.clustering.context.ContextualExecutor$1.run(ContextualExecutor.java:70) at java.base/java.lang.Thread.run(Thread.java:834)Caused by: javax.transaction.InvalidTransactionException: WFTXN0002: Transaction is not a supported instance: TransactionImpl
      Unknown macro: {xid=Xid Unknown macro}
      , status=ACTIVE} at org.wildfly.transaction.client@1.1.13.Final//org.wildfly.transaction.client.ContextTransactionManager.resume(ContextTransactionManager.java:148) at org.infinispan@11.0.4.Final//org.infinispan.transaction.impl.TransactionTable.enlist(TransactionTable.java:219) ... 71 more

       

       

       

              Unassigned Unassigned
              andrius.karpavicius Andrius Karpavicius (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: