Uploaded image for project: 'WildFly Transaction Client'
  1. WildFly Transaction Client
  2. WFTC-54

Integration with Narayana fails when timeout propagation over remote call declares it as '0'

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 1.1.3.Final, 1.2.0.Final
    • 1.0.5.Final, 1.1.1.Final
    • None

      If the remote call passes transaction context where timeout is set as `0` then Narayana consider that value as transaction which should never be timetouted. But the wfly txn client consider the `0` as correct timeout value which means kind of `immediate timeout`.
      The Narayana AtomicAction class consider it as -1[2] (which is used for subordinate transaction[3]) while the transaction reaper consider the value of no timeout to be 0[4].

      The client decreases[1] the timeout based on how much time elapsed from the transaction was started till time the remote call is to be accomplished. That means the timeout `0` can be passes even the transaction is not meant as `to never timeout`.

      [1] https://github.com/wildfly/wildfly-transaction-client/blob/1.1.2.Final/src/main/java/org/wildfly/transaction/client/AbstractTransaction.java#L141
      [2] https://github.com/jbosstm/narayana/blob/5.9.2.Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/AtomicAction.java#L61
      [3] https://github.com/jbosstm/narayana/blob/5.9.2.Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/subordinate/SubordinateAtomicAction.java#L68
      [4] https://github.com/jbosstm/narayana/blob/5.9.2.Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/TransactionReaper.java#L531

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

                Created:
                Updated:
                Resolved: