[
https://issues.jboss.org/browse/ISPN-2372?page=com.atlassian.jira.plugin....
]
Marko Lukša updated ISPN-2372:
------------------------------
Attachment: paths.txt
Dan, yes, your patch does seem to alleviate the problem - the complete test suite runs
without running out of memory.
After running the whole testsuite, there are approx 15 leaked references to the
classloader. I'm attaching paths.txt, which contains the paths to one of them.
Memory leak in AbstractJBossMarshaller
--------------------------------------
Key: ISPN-2372
URL:
https://issues.jboss.org/browse/ISPN-2372
Project: Infinispan
Issue Type: Bug
Affects Versions: 5.2.0.Beta1
Reporter: Marko Lukša
Assignee: Dan Berindei
Priority: Blocker
Fix For: 5.2.0.Final
Attachments: paths.txt, ThreadLocalTest.java
{{AbstractJBossMarshaller.marshallerTL}} is leaking {{PerThreadInstanceHolder}}
instances. These hold a reference to {{MarshallingConfiguration}}, which indirectly holds
a reference to the classloader, which of course holds a truckload of stuff.
The cause of the leak is the fact that noone ever calls {{remove()}} on {{marshallerTL}}.
I've tried adding {{marshallerTL.remove()}} to {{AbstractJBossMarshaller.stop()}},
but this only removed references from JBossAS' MSC Service threads. Other threads (in
my case only one thread - "http-/127.0.0.1:8080-2") are still causing the leak.
Here's the complete path from Thread to ModuleClassLoader:
{code}
classes of org.jboss.modules.ModuleClassLoader
value of java.util.Hashtable$Entry
[4] of java.util.Hashtable$Entry[23]
table of org.infinispan.util.Immutables$ImmutableTypedProperties
configurationProperties of org.hibernate.search.impl.ImmutableSearchFactory
delegate of org.hibernate.search.impl.MutableSearchFactory"
searchFactoryImplementor of org.infinispan.query.CommandInitializer
value of java.util.HashMap$Entry
[0] of java.util.HashMap$Entry[4]
table of java.util.HashMap
commandInitializers of org.infinispan.util.ModuleProperties
moduleProperties of org.infinispan.factories.GlobalComponentRegistry
gcr of org.infinispan.marshall.jboss.ExternalizerTable
objectTable of org.jboss.marshalling.MarshallingConfiguration
configuration of
org.infinispan.marshall.jboss.AbstractJBossMarshaller$PerThreadInstanceHolder
value of java.lang.ThreadLocal$ThreadLocalMap$Entry
[3462] of java.lang.ThreadLocal$ThreadLocalMap$Entry[4096]
table of java.lang.ThreadLocal$ThreadLocalMap
threadLocals of java.lang.Thread [Stack Local, Thread]
""http-/127.0.0.1:8080-2"" native ID: 0x1B18", "28"
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira