Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-3160

Start LRA returns first URI all the time

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Critical
    • None
    • None
    • LRA
    • None
    • Hide
      • Start lra-coordinator 5.9.5 Final
        lra-coordinator-5.9.5.Final-swarm.jar
      • Run reproducer jar from attachement
        java -jar reproducer.jar 
      • Start lra-coordinator 5.9.6 SNAPSHOT
        java -jar lra-coordinator-5.9.6.Final-SNAPSHOT-thorntail.jar
      • Run reproducer jar from attachement
        java -jar reproducer.jar 
      • The execution failed because in the second iteration, the lraClient.closeLRA(uri) wants to close lra which is already closed (the first one).
      Show
      Start lra-coordinator 5.9.5 Final lra-coordinator-5.9.5.Final-swarm.jar Run reproducer jar from attachement java -jar reproducer.jar Start lra-coordinator 5.9.6 SNAPSHOT java -jar lra-coordinator-5.9.6.Final-SNAPSHOT-thorntail.jar Run reproducer jar from attachement java -jar reproducer.jar The execution failed because in the second iteration, the lraClient.closeLRA(uri) wants to close lra which is already closed (the first one).

    Description

      The function

      lraNarayanaLRAClient.startLRA(...)

      doesn't return the new URI but the URI of the first transaction all the time even though the first transaction is already closed. This happens only with coordinator 5.9.6-SNAPSHOT. For coordinator 5.9.5-Final, the function returns new URI all the time.

      So when I run this code more times, the function returns the same URI all the time. In the second iteration, the URI which is returned from the startLRA() is the same as in the first iteration. That transaction is already closed so the closeLRA() failed.

      for (int i = 0; i < 10; i++) {
          URI uri = null;
          uri = lraClient.startLRA(getClass().getCanonicalName() + i);
          lraClient.closeLRA(uri);
      }
      

      I uploaded reproducer for it. It is spring boot application which compares returned URI from the startLRA() and the URI which is on the `http://localhost:8080/lra-coordinator`

      For debugging, just import source project to IDE (I use Intelij IDEA) and run/debug TestingApplication.

      Attachments

        Activity

          People

            rhn-engineering-mmusgrov Michael Musgrove
            mkralik@redhat.com Matej Kralik
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: