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

WFTC-54 - Integration with Narayana fails when timeout propagation over remote call declares it as '0' causing UserTransaction timeout to not work

XMLWordPrintable

      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)
              istudens@redhat.com Ivo Studensky
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: