Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tomcat Wiki" for change notification.
The "MemoryLeakProtection" page has been changed by SylvainLaurent. http://wiki.apache.org/tomcat/MemoryLeakProtection?action=diff&rev1=9&rev2=10 -------------------------------------------------- ||[[#webappClassInstanceAsThreadLocalValue|Webapp class instance as ThreadLocal value]]||>=6.0.24||>=6.0.24|| [[#48837|Detect child classloaders]], [[#48895|improve thread safety]] || ||[[#webappClassInstanceAsThreadLocalIndirectValue|Webapp class instance indirectly held through a ThreadLocal value]]||no||no||Renew threads in the worker pool|| ||[[#threadLocalPseudoLeak|ThreadLocal pseudo-leak]]||>=6.0.24||>=6.0.24||[[#48895|improve thread safety]]|| - ||[[#cclThreadSpawnedByWebApp|ContextClassLoader / Threads spawned by webapps]]||>=6.0.24||{{{TimerThread}}} are stopped. Other threads may be stopped if {{{clearReferencesStopThreads}}} is set to true on the Context ||[[#48837|Detect child classloaders]], don't stop {{{TimerThread}}} by default|| + ||[[#cclThreadSpawnedByWebApp|ContextClassLoader / Threads spawned by webapps]]||>=6.0.24||{{{TimerThread}}} are stopped. Other threads may be stopped if {{{clearReferencesStopThreads}}} is set to true on the Context ||[[#48837|Detect child classloaders]], [[#48971|don't stop TimerThread by default]]|| - ||[[#cclThreadSpawnedByCommonClassLoader|ContextClassLoader / Threads spawned by classes loaded by the common classloader]]||>=6.0.24||{{{TimerThread}}} are stopped. Other threads may be stopped if {{{clearReferencesStopThreads}}} is set to true on the Context ||[[#48837|Detect child classloaders]], don't stop {{{TimerThread}}} by default|| + ||[[#cclThreadSpawnedByCommonClassLoader|ContextClassLoader / Threads spawned by classes loaded by the common classloader]]||>=6.0.24||{{{TimerThread}}} are stopped. Other threads may be stopped if {{{clearReferencesStopThreads}}} is set to true on the Context ||[[#48837|Detect child classloaders]], [[#48971|don't stop TimerThread by default]]|| ||[[#cclThreadSpawnedByJRE|ContextClassLoader / Threads spawned by JRE classes]]|| no || >=6.0.24 pre-spawns some known offenders || || ||[[#staticClassVariables|static class variables]]|| no ||> 6.0.? || || ||[[#LogFactory|LogFactory]]|| ||> 6.0.? || || @@ -352, +352 @@ SEVERE: A web application appears to have started a TimerThread named [Timer-0] via the java.util.Timer API but has failed to stop it. To prevent a memory leak, the timer (and hence the associated thread) has been forcibly cancelled. }}} - So the leak is fixed, but unfortunately there's a side effect : it broke webapp B eviction timer. + So the leak is fixed, but unfortunately there's a side effect : [[#48971|it broke webapp B eviction timer]]. - - (TODO: file a bug report to make the clearReferencesStopTimerThread optional and disabled by default) Note: as of 6.0.24, by default tomcat stops threads of class {{{java.util.TimerThread}}} whose context classloader is the {{{WebAppClassLoader}}} of the app being stopped. It does not stop other threads, it only warns about them. It can try to stop them if the {{{clearReferencesStopThreads}}} option of the standard context is set to true. @@ -407, +405 @@ Related issues * <<Anchor(48837)>>[[https://issues.apache.org/bugzilla/show_bug.cgi?id=48837|48837]] - Memory leaks protection does not cure leaks triggered by JSP pages code * <<Anchor(48895)>>[[https://issues.apache.org/bugzilla/show_bug.cgi?id=48895|48895]] - !WebAppClassLoader.clearThreadLocalMap() concurrency issues - * + * <<Anchor(48971)>>[[https://issues.apache.org/bugzilla/show_bug.cgi?id=48971|48971]] - memory leak protection : stopping !TimerThreads should be optional and disabled by default --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org