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

Reply via email to