7 Replies Latest reply on Feb 3, 2014 7:24 AM by Andrey Smirnov

    mem leak in TransactionSynchronizer on afterCompletion() phase

    Andrey Smirnov Newbie

      Hello.

       

      Let me introduce the problem

      App server ( jboss-as-7.1.1.Final ) which is a part of complex distributed app using CORBA for communication fails with OutOfMemoryError

       

      I've investigated the problem and seems like root cause is inability  to clean up txSynchs ( and locks ) maps resided in org.jboss.jca.core.connectionmanager.transaction.TransactionSynchronizer class.

      More detailed:

       

      Collections mentioned above should be cleaned up in afterCompletion() method but TX is unavailable at that stage, so Transaction.hashCode() returns -1 which leads to dangled TX associations.

      Right now I don't understand why javax.transaction.Transaction is used as a key in this maps? For me it seems like this code wil always fail.

       

      I've attached modified source code of  TransactionSynchronizer which I used during investigation and partial app log with records specific to one TX.

       

      Regards, Andrey.