]
RH Bugzilla Integration updated WFLY-4327:
------------------------------------------
Bugzilla References:
when background tx-timeout rolls back the transaction, application
thread should call tx.rollback instead of tx.suspend
-----------------------------------------------------------------------------------------------------------------------
Key: WFLY-4327
URL:
https://issues.jboss.org/browse/WFLY-4327
Project: WildFly
Issue Type: Bug
Components: EJB
Reporter: Scott Marlow
Assignee: Scott Marlow
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().