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

Prevent JTS bottom-up recovery from rolling back prepared inflowed JCA transactions

    Details

    • Type: Bug
    • Status: Verified (View Workflow)
    • Priority: Blocker
    • Resolution: Done
    • Affects Version/s: 7.1.0.DR4
    • Fix Version/s: 7.1.0.DR6
    • Component/s: Transactions
    • Labels:
      None
    • Target Release:
    • Fix Build:
      DR6
    • Steps to Reproduce:
      Hide
      mvn clean verify -am -pl jbossts -DfailIfNoTests=false -fn -Djbossts.noJTA -Dtest=JcaInflowTransactionTestCase#jvmCrashAfterPrepareJTS
      
      Show
      mvn clean verify -am -pl jbossts -DfailIfNoTests= false -fn -Djbossts.noJTA -Dtest=JcaInflowTransactionTestCase#jvmCrashAfterPrepareJTS

      Description

      There exists a defect that if a recovering JVM does the following steps:

      doRecoveryScan()
      waitForOrphanInterval()
      doRecoveryScan()
      

      Before XATerminator::recover is called in the root coordinator then bottom-up recovery will be told there is NoTransaction which is infers as a rollback.

      I saw two options, one was to have TransactionCacheItem try to peek in the objectstore for ServerTransaction/JCA classes. The alternative is to add a new recovery module that can load the ServerTransaction/JCA classes periodically so the transaction won't be lost.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  tomjenkinson Thomas Jenkinson
                  Reporter:
                  ochaloup Ondrej Chaloupka
                  Tester:
                  Ondrej Chaloupka
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: