Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-17120

[GSS](7.2.z) Server-server EJB transactional invocation rolls back if MDB call remote EJB and JBOSS-LOCAL-USER auth is not possible

    Details

    • Target Release:
    • Steps to Reproduce:
      Hide
      1. Start server-1 using standalone-full-ha.xml
      2. Configure JMS Queue on server-1 using this JNDI: java:/jms/queue/TestQueue
      3. Start server-2 using standalone-full-ha.xml
      4. Configure JMS Queue on server-2 using this JNDI: java:/jms/queue/TestQueue
      5. Configure the remote-outboud-connection on server-2 point to sevrer-1.
      6. Deploy mdbcallingejb.war on server-1
      7. Deploy mdbcallingejbclient.war on server-2
      8. Send a request to http://server-1-ip:8080/test/
      Show
      Start server-1 using standalone-full-ha.xml Configure JMS Queue on server-1 using this JNDI: java:/jms/queue/TestQueue Start server-2 using standalone-full-ha.xml Configure JMS Queue on server-2 using this JNDI: java:/jms/queue/TestQueue Configure the remote-outboud-connection on server-2 point to sevrer-1. Deploy mdbcallingejb.war on server-1 Deploy mdbcallingejbclient.war on server-2 Send a request to http://server-1-ip:8080/test/
    • QE Test Coverage:
      -

      Description

      I have two JBoss EAP 7.2.z in different machine (Server-1 and Server-2). In Server-1 I have a application running a MDB that is consuming a JMS Queue and calling a remote EJB in Server-2. Several process works without error, but it get an error when try commit a xa-transaction. This is the Exception:

      javax.transaction.xa.XAException: WFTXN0034: Failed to acquire a connection for this operation
      	at org.wildfly.transaction.client.provider.remoting.RemotingRemoteTransactionPeer.getPeerIdentityXA(RemotingRemoteTransactionPeer.java:94)
      	at org.wildfly.transaction.client.provider.remoting.RemotingRemoteTransactionPeer.recover(RemotingRemoteTransactionPeer.java:201)
      	at org.wildfly.transaction.client.SubordinateXAResource.recover(SubordinateXAResource.java:201)
      	at org.wildfly.transaction.client.SubordinateXAResource.recover(SubordinateXAResource.java:197)
      	at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecoveryFirstPass(XARecoveryModule.java:609)
      	at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:201)
      	at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkFirstPass(XARecoveryModule.java:146)
      	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:765)
      	at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:377)
      Caused by: org.wildfly.security.auth.AuthenticationException: JBREM000308: Authentication failed (no mechanisms left), tried: 
         JBOSS-LOCAL-USER: org.wildfly.security.auth.AuthenticationException: JBREM000300: Authentication failed due to I/O error
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.doAuthenticate(ConnectionPeerIdentityContext.java:368)
      	at org.jboss.remoting3.ConnectionPeerIdentityContext.authenticate(ConnectionPeerIdentityContext.java:174)
      	at org.jboss.remoting3.EndpointImpl$3.handleDone(EndpointImpl.java:506)
      	at org.jboss.remoting3.EndpointImpl$3.handleDone(EndpointImpl.java:495)
      	at org.xnio.IoFuture$HandlingNotifier.notify(IoFuture.java:208)
      	at org.xnio.AbstractIoFuture$NotifierRunnable.run(AbstractIoFuture.java:720)
      	at org.xnio.IoUtils$2.execute(IoUtils.java:71)
      	at org.xnio.AbstractIoFuture.runNotifier(AbstractIoFuture.java:693)
      	at org.xnio.AbstractIoFuture$CompleteState.withNotifier(AbstractIoFuture.java:132)
      	at org.xnio.AbstractIoFuture.addNotifier(AbstractIoFuture.java:570)
      	at org.jboss.remoting3.EndpointImpl.doGetConnection(EndpointImpl.java:495)
      	at org.jboss.remoting3.EndpointImpl.getConnectedIdentity(EndpointImpl.java:434)
      	at org.wildfly.transaction.client.provider.remoting.RemotingRemoteTransactionPeer.getPeerIdentity(RemotingRemoteTransactionPeer.java:87)
      	at org.wildfly.transaction.client.provider.remoting.RemotingRemoteTransactionPeer.getPeerIdentityXA(RemotingRemoteTransactionPeer.java:92)
      	... 8 more    
      

      Then, the xa-transaction can not be committed. This bug is similar to https://issues.jboss.org/browse/JBEAP-15738.

      Configurations:

      • Configure Server-1 as full-ha (standalone-full-ha.xml)
        • Configure a remote-outbound-connection pointing at server-2 through server-2's public IP address
        • Configure a JMS Queue (java:/jms/queue/TestQueue)
      • Configure Server-2 as full-ha (standalone-full-ha.xml) in different machine.
      • - Create a target bean (can be stateless or stateful)
        • Configure a JMS Queue (java:/jms/queue/TestQueue)

        Gliffy Diagrams

          Attachments

          1. configuration-files.zip
            11 kB
          2. mdbcallingejb.zip
            3.22 MB
          3. mdbcallingejbclient.zip
            3.22 MB
          4. server.log
            155 kB

            Issue Links

              Activity

                People

                • Assignee:
                  tomekadamski Tomasz Adamski
                  Reporter:
                  rhn-support-rhsilva Rhuan Rocha
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  11 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: