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

[GSS](7.2.z) WFTC-54 - Integration with Narayana fails when timeout propagation over remote call declares it as '0' causing UserTransaction timeout to not work

    XMLWordPrintable

Details

    Description

      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

      Attachments

        Issue Links

          Activity

            People

              istudens@redhat.com Ivo Studensky
              rhn-support-bmaxwell Brad Maxwell
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: