Andrey Smirnov
2013-08-07 07:59:01 UTC
Andrey Smirnov [https://community.jboss.org/people/cheezzario] created the discussion
"Possible mem leak in TX synchronizer on afterCompletion() phase"
To view the discussion, visit: https://community.jboss.org/message/831719#831719
--------------------------------------------------------------
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.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/831719#831719]
Start a new discussion in IronJacamar at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2098]
"Possible mem leak in TX synchronizer on afterCompletion() phase"
To view the discussion, visit: https://community.jboss.org/message/831719#831719
--------------------------------------------------------------
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.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/831719#831719]
Start a new discussion in IronJacamar at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2098]