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

There are in doubt transactions that should be rolled back after communication failure

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 13.0.0.Final
    • Component/s: None
    • Labels:
      None
    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      Use WFTC-38 new recovery code in the server once wildfly-transaction-client component is upgraded.

      Show
      Use WFTC-38 new recovery code in the server once wildfly-transaction-client component is upgraded.

      Description

      We have two servers, one deployment on each.

      TX impl: jta

      there is remote outbound connection on the EAP 1 for EJB call from EAP1 to EAP2
      outbound connection points to socket proxy which is managable (communication can be stopped) and forward communication to EAP2 (location that should be used in remote outbound connection without socket proxy)

      Scenario:

      call servlet on EAP 1 which trigger EJB on the EAP 1
      EJB enlists dummy xa resource and writes to DB
      EJB call EJB on the EAP 2 via remote outbound connection
      EJB on the server 2 enlists dummy xa resource and writes to DB and return
      at the exit of the prepare phase in dummy xa resource on EAP 2 communication (socket proxy) is killed
      Transaction is supposed to be rolled back.

      However, we can see that there are prepared resources on the EAP 2 that have not been rolled back

      [INFO] Transaction

      Xid:< formatId=131077, gtrid_length=29, bqual_length=37, tx_uid=0:ffff0a280499:6a6c4aa6:59885e66:12, node_name=0, branch_uid=0:ffff0a280499:6a6c4aa6:59885e66:27, subordinatenodename=1, eis_name=0 >

      Type:StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction/SubordinateAtomicAction/JCA

      ParentNodeName:0

      Participant:false

      CreationTime:Mon, 07 Aug 2017 14:35:11 +0200

      AgeInSeconds:128

      Id:0:ffff0a280499:-166fadbf:59885e75:10

      Participant

      HeuristicValue:-1

      Status:PREPARED

      JndiName:java:/TestXAResource

      GlobalTransactionId:[B@4e1b1193

      HeuristicStatus:UNKNOWN

      NodeName:null

      Timeout:0

      FormatId:-1

      BranchQualifier:[B@39a95e4c

      Type:/StateManager/AbstractRecord/XAResourceRecord

      Participant:true

      EisProductVersion:EAP Test

      ClassName:com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord

      EisProductName:Crash Recovery Test

      Id:0:ffff0a280499:-166fadbf:59885e75:1a

      Participant

      HeuristicValue:-1

      Status:PREPARED

      JndiName:java:jboss/eap2-ds-jndi

      GlobalTransactionId:[B@5c4ce097

      HeuristicStatus:UNKNOWN

      NodeName:null

      Timeout:0

      FormatId:-1

      BranchQualifier:[B@6945cfc7

      Type:/StateManager/AbstractRecord/XAResourceRecord

      Participant:true

      EisProductVersion:9.3.15

      ClassName:com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord

      EisProductName:PostgreSQL

      Id:0:ffff0a280499:-166fadbf:59885e75:22

      [INFO] ..........................................................................................

      There is no evidence (eap1.server.log) that periodic recovery process is looking for in doubt transactions on the other server that could be rolled back.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  flavia.rainone Flavia Rainone
                  Reporter:
                  flavia.rainone Flavia Rainone
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: