[ 
https://issues.apache.org/jira/browse/LOG4J2-819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14133041#comment-14133041
 ] 

Ralph Goers commented on LOG4J2-819:
------------------------------------

I admit I don't completely understand why Tomcat is finding those two classes, 
but my understanding is the problem is the static variables in those two 
classes that are automatically initialized when the class is referenced.  I am 
suggesting that those statics be removed as they are not necessary. The clock 
instance should be stored in the LoggerContext only.

> PermGen OutOfMemoryError when reloading webapp on Tomcat 6
> ----------------------------------------------------------
>
>                 Key: LOG4J2-819
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-819
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.2
>         Environment: Tomcat 6
>            Reporter: Costa Theodosiou
>            Priority: Critical
>         Attachments: demo.zip, demorun-tomcat6-with-reload.zip, demorun.zip, 
> gg-log4j2-clocks-interrupts.patch, gg-log4j2-clocks-v2.patch
>
>
> When reloading an application 3 or 4 times in Tomcat 6, the application 
> crashes with a "java.lang.OutOfMemoryError: PermGen space" exception.
> After some investigation using the "When all else fails" section of 
> https://wiki.apache.org/tomcat/OutOfMemory in conjunction with Java VisualVM, 
> I have narrowed down the problem to the Thread created within 
> org.apache.logging.log4j.core.util.CoarseCachedClock.
> When a Thread is created, it contains a reference to the classloader that it 
> was created with. In this case, the Thread's contextClassLoader field 
> contains a reference to the WebappClassLoader. When Tomcat attempts to unload 
> the webapp, the Thread still holds onto this reference which prevents 
> WebappClassLoader from being freed.
> Perhaps the Log4jServletContextListener (Log4jWebInitializerImpl) can be made 
> to stop the CoarseCachedClock thread.
> I believe this is not an obvious issue on Tomcat 7 due to 
> https://wiki.apache.org/tomcat/MemoryLeakProtection.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to