You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2012/08/07 01:03:04 UTC

[jira] [Created] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Howard M. Lewis Ship created TAP5-1983:
------------------------------------------

             Summary: PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
                 Key: TAP5-1983
                 URL: https://issues.apache.org/jira/browse/TAP5-1983
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.3, 5.4
            Reporter: Howard M. Lewis Ship
            Priority: Critical


As reported on the mailing list:


On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> The internal tomcat listener JreMemoryLeakPreventionListener write to
> console this message after undeploy/redeploy my application.
>
> 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> clearThreadLocalMap
> SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> type
> [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> (value
> [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> was stopped. This is very likely to create a memory leak.
>
> From the memory dump it seems, that GC can't remove previous version of the
> application and after several redeploys permspace is gone.

This does look like a bug, with a pretty easy fix.

>
> Is the message from tomcat memory leak detector relevant? What does the
> value 1=DEFINED means?
> Thanks for answer.

Tapestry uses this class to manage a per-thread HashMap; the values in
the HashMap are anything that Tapestry needs to track on a per-thread
(not global) basis; including the values of page and component fields,
and lots more besides.  The key is an arbitrarily assigned Integer; it
has no specific meaning.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1983:
---------------------------------------

    Fix Version/s: 5.3.5
           Labels: fixed-in-5.4-js-rewrite  (was: )
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: fixed-in-5.4-js-rewrite
>             Fix For: 5.3.5
>
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1983:
---------------------------------------

    Fix Version/s:     (was: 5.3.6)
                   5.3.5
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: fixed-in-5.4-js-rewrite
>             Fix For: 5.3.5
>
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1983:
---------------------------------------

    Fix Version/s: 5.3.5
           Labels: fixed-in-5.4-js-rewrite  (was: )
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: fixed-in-5.4-js-rewrite
>             Fix For: 5.3.5
>
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1983:
---------------------------------------

    Fix Version/s:     (was: 5.3.5)
                   5.3.6
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: fixed-in-5.4-js-rewrite
>             Fix For: 5.3.6
>
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship reassigned TAP5-1983:
------------------------------------------

    Assignee: Howard M. Lewis Ship
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship reassigned TAP5-1983:
------------------------------------------

    Assignee: Howard M. Lewis Ship
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1983:
---------------------------------------

    Fix Version/s:     (was: 5.3.5)
                   5.3.6
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: fixed-in-5.4-js-rewrite
>             Fix For: 5.3.6
>
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1983) PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed

Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship updated TAP5-1983:
---------------------------------------

    Fix Version/s:     (was: 5.3.6)
                   5.3.5
    
> PerThreadManager does not cleanup on shutdown, can lead to memory leaks when application redeployed
> ---------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1983
>                 URL: https://issues.apache.org/jira/browse/TAP5-1983
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3, 5.4
>            Reporter: Howard M. Lewis Ship
>            Assignee: Howard M. Lewis Ship
>            Priority: Critical
>              Labels: fixed-in-5.4-js-rewrite
>             Fix For: 5.3.5
>
>
> As reported on the mailing list:
> On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <pe...@jpower8.cz> wrote:
> > My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> > The internal tomcat listener JreMemoryLeakPreventionListener write to
> > console this message after undeploy/redeploy my application.
> >
> > 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> > clearThreadLocalMap
> > SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> > type
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl.MapHolder]
> > (value
> > [org.apache.tapestry5.ioc.internal.services.PerthreadManagerImpl$MapHolder@64efc9fb])
> > and a value of type [java.util.HashMap] (value [{1=DEFINED, 2=DEFINED,
> > 3=DEFINED, 4=DEFINED, 5=DEFINED, 6=DEFINED, 7=DEFINED, 8=DEFINED, 9=DEFINED,
> > 10=DEFINED, 11=DEFINED}]) but failed to remove it when the web application
> > was stopped. This is very likely to create a memory leak.
> >
> > From the memory dump it seems, that GC can't remove previous version of the
> > application and after several redeploys permspace is gone.
> This does look like a bug, with a pretty easy fix.
> >
> > Is the message from tomcat memory leak detector relevant? What does the
> > value 1=DEFINED means?
> > Thanks for answer.
> Tapestry uses this class to manage a per-thread HashMap; the values in
> the HashMap are anything that Tapestry needs to track on a per-thread
> (not global) basis; including the values of page and component fields,
> and lots more besides.  The key is an arbitrarily assigned Integer; it
> has no specific meaning.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira