[infinispan-issues] [JBoss JIRA] (ISPN-2786) ThreadLocal memory leak in Tomcat

Dan Berindei (JIRA) jira-events at lists.jboss.org
Wed May 29 09:53:55 EDT 2013


    [ https://issues.jboss.org/browse/ISPN-2786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777868#comment-12777868 ] 

Dan Berindei commented on ISPN-2786:
------------------------------------

Sorry, my previous comment would is more relevant to the pull request than the issue...

The ThreadLocal documentation also says "Each thread holds an implicit reference to its copy of a thread-local variable as long as the thread is alive *and the ThreadLocal instance is accessible.*" So I'm pretty sure the thread-local can't leak unless the AbstractJBossMarshaller instance is leaked as well.

Indeed, your fix fixes the test, but I don't think it completely fixes the Tomcat use case. Even if it did remove all thread-local values properly, if we leak the AbstractJBossMarshaller then the classloader is still accessible and we still have a memory leak.



                
> ThreadLocal memory leak in Tomcat
> ---------------------------------
>
>                 Key: ISPN-2786
>                 URL: https://issues.jboss.org/browse/ISPN-2786
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Marshalling, Transactions
>    Affects Versions: 5.1.8.Final
>            Reporter: Johann Burkard
>            Assignee: Galder ZamarreƱo
>              Labels: leak, local, memory, thread, threadlocal
>             Fix For: 5.3.0.Final
>
>
> Just started an app using Infinispan 5.1.8.Final on Tomcat and got a few ThreadLocal problems during un-deployment:
> (Shortened)
> {code}
> key=org.jboss.marshalling.UTFUtils.BytesHolder
> value=org.jboss.marshalling.UTFUtils$BytesHolder at 697a1686
> key=java.lang.ThreadLocal at 36ed5ba6
> value=org.infinispan.context.SingleKeyNonTxInvocationContext{flags=null}
> key=org.infinispan.marshall.jboss.AbstractJBossMarshaller$1
> value=org.infinispan.marshall.jboss.AbstractJBossMarshaller$1 at 75f10df7
> value=org.infinispan.marshall.jboss.AbstractJBossMarshaller.PerThreadInstanceHolder
> {code}
> I do call {{DefaultCacheManager#shutdown()}} during un-deployment. :)
> Thanks

--
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



More information about the infinispan-issues mailing list