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

when background tx-timeout rolls back the transaction, application thread should call tx.rollback instead of tx.suspend

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 9.0.0.Beta1
    • None
    • EJB
    • None

    Description

      We found out that when the transaction manager "reaper" thread rolls back a transaction, it doesn't remove the transaction from a static collection. tx.suspend, which disassociates the transaction from the application thread, also doesn't remove the transaction from the static collection. As a result, the transaction leaks and all of the objects references by it (including all resources that are put there like JPA persistence contexts).

      To address this, we should change org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction (STATUS_ROLLEDBACK case in switch statement) to call tm.rollback() instead of tm.suspend().

      Attachments

        Issue Links

          Activity

            People

              smarlow1@redhat.com Scott Marlow
              smarlow1@redhat.com Scott Marlow
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: