Uploaded image for project: 'WildFly EJB HTTP Client'
  1. WildFly EJB HTTP Client
  2. WEJBHTTP-53

EJB client over HTTP gets stuck when transaction recover call ends with error

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 1.0.24.Final
    • None
    • Undefined

      From discussion at the issue https://issues.redhat.com/browse/WFLY-14284 it seems that the EJB HTTP client gets stuck when XAResource.recover call to the remote side fails. The issue of the WFLY-14284 is that the remote side fails to authenticate the call. The recover call then does not get Xid and reading hangs forever as waiting for the remote data.

      It's at the call https://github.com/wildfly/wildfly-http-client/blob/1.0.21.Final/transaction/src/main/java/org/wildfly/httpclient/transaction/HttpRemoteTransactionPeer.java#L80[1].

      From what I checked the code it seems to me that the WildFly Transaction client makes more verification and handles this to not be hanging (https://github.com/wildfly/wildfly-transaction-client/blob/1.1.11.Final/src/main/java/org/wildfly/transaction/client/provider/remoting/RemotingRemoteTransactionPeer.java#L202).

      [1[

      "ServerService Thread Pool -- 37" - Thread t@65
         java.lang.Thread.State: WAITING
              at java.base@11.0.8/java.lang.Object.wait(Native Method)
              - waiting on <15eaeba8> (a java.lang.Object)
              at java.base@11.0.8/java.lang.Object.wait(Object.java:328)
              at org.jboss.jts//com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.suspendScan(PeriodicRecovery.java:247)
              at org.jboss.jts//com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.trySuspendScan(RecoveryManagerImple.java:192)
              at org.jboss.jts//com.arjuna.ats.arjuna.recovery.RecoveryManager.trySuspend(RecoveryManager.java:265)
              at org.jboss.jts//com.arjuna.ats.arjuna.recovery.RecoveryManager.suspend(RecoveryManager.java:259)
              at org.jboss.jts.integration//com.arjuna.ats.jbossatx.jta.RecoveryManagerService.suspend(RecoveryManagerService.java:79)
              at org.jboss.as.transactions@20.0.1.Final//org.jboss.as.txn.suspend.RecoverySuspendController.preSuspend(RecoverySuspendController.java:42)
              at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.suspend.SuspendController.suspend(SuspendController.java:103)
              - locked <2ef5626e> (a org.jboss.as.server.suspend.SuspendController)
              at org.jboss.as.server@12.0.3.Final//org.jboss.as.server.operations.ServerDomainProcessShutdownHandler$1$1.handleResult(ServerDomainProcessShutdownHandler.java:100)
              at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractOperationContext$Step.invokeResultHandler(AbstractOperationContext.java:1533)
              at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractOperationContext$Step.handleResult(AbstractOperationContext.java:1515)
              at org.jboss.as.controller@12.0.3.Final//org.jboss.as.controller.AbstractOperationContext$Step.finalizeInternal(AbstractOperationContext.java:1472)
              ...
      

            Unassigned Unassigned
            ochaloup@redhat.com Ondrej Chaloupka (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: