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

MP LRA TCK failures when running on WildFly - a bug in lra-coordinator

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.12.1.Final
    • 5.11.3.Final
    • LRA, Testing
    • None
    • Hide

      Checkout and build narayana and then run the TCK using WildFly as the container:

       

      cd narayana/rts/lra/test/tck
      export JBOSS_HOME=...
      mvn clean verify -Parq

       

      Show
      Checkout and build narayana and then run the TCK using WildFly as the container:   cd narayana/rts/lra/test/tck export JBOSS_HOME=... mvn clean verify -Parq  
    • Undefined

      The Narayana implementation of the Microprofile (MP) LRA specification fails to pass consistently the MP LRA TCK when lra-coordinator is deployed to Wildfly. Different hardware results in different errors; in other words, if the LRA TCK is executed on different machines, it might fail with different exceptions.

      Further information to help troubleshooting

      • The common baseline seems to be related to LRAs stuck in Cancelling status, which might happen here.
      • Using a SingleThreadPool as Executor (i.e. using this overload method) seems to workaround the problem (but it is not a solution as creating a SingleThreadPool for each LRA is a resource intensive task)

      Stack trace of intermittent failures:

      Manuel's laptop

      [ERROR] Tests run: 23, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 33.324 s <<< FAILURE! - in org.eclipse.microprofile.lra.tck.TckTests
      [ERROR] timeLimitWithPreConditionFailed(org.eclipse.microprofile.lra.tck.TckTests)  Time elapsed: 1.326 s  <<< FAILURE!
      java.lang.AssertionError: 
      Expected 412 or 410 response
      Expected: (is <412> or is <410>)
           but: was <200>
      	at deployment.tcktests.war//org.eclipse.microprofile.lra.tck.TckTests.timeLimitWithPreConditionFailed(TckTests.java:360)
      
      [ERROR] timeLimit(org.eclipse.microprofile.lra.tck.TckTests)  Time elapsed: 1.265 s  <<< FAILURE!
      java.lang.AssertionError: The LRA should have timed out and compensate should be called. Expecting the number of compensate call before test is one less lower than the ones after LRA timed out. The test call went to http://127.0.0.1:8180/tcktests/lraresource/timeLimit expected:<1> but was:<0>
      	at deployment.tcktests.war//org.eclipse.microprofile.lra.tck.TckTests.timeLimit(TckTests.java:337)
      

      CI

      [ERROR] Failures: 
      [ERROR]   TckTests.timeLimit:337 The LRA should have timed out and compensate should be called. Expecting the number of compensate call before test is one less lower than the ones after LRA timed out. The test call went to http://127.0.0.1:8180/tcktests/lraresource/timeLimit expected:<1> but was:<0>
      [ERROR]   TckTests.timeLimitWithPreConditionFailed:360 Expected 412 or 410 response
      Expected: (is <412> or is <410>)
           but: was <200>
      [INFO] 
      [ERROR] Tests run: 133, Failures: 2, Errors: 0, Skipped: 0
      

      Ondra's laptop

      [ERROR] testCancelWhenParticipantIsRestarted(org.eclipse.microprofile.lra.tck.TckRecoveryTests)  Time elapsed: 3.826 s  <<< FAILURE!
      java.lang.AssertionError: expected:<200> but was:<503>
              at org.eclipse.microprofile.lra.tck.TckRecoveryTests.testCancelWhenParticipantIsRestarted(TckRecoveryTests.java:131)
      

              jfinelli@redhat.com Manuel Finelli
              jfinelli@redhat.com Manuel Finelli
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: