[ https://issues.apache.org/jira/browse/LOG4J2-1259?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15510729#comment-15510729 ]
Gary Gregory commented on LOG4J2-1259: -------------------------------------- I notice that you are not using the {{log4j-web}} module. See https://logging.apache.org/log4j/2.x/log4j-web/index.html and https://logging.apache.org/log4j/2.x/manual/webapp.html. Can you try that with the latest SNAPSHOT build? I uploaded a new snapshot with updates to the log4j-web module to allow for a more orderly shutdown. The commit adds two servlet init parameters called {{log4j.stop.timeout}} and {{log4j.stop.timeout.timeunit}} with defaults of 30 and TimeUnit.SECONDS. Before this code, I am thinking that when the container shuts down Log4j and unloads the classes, some Log4j code is left running in sleeping threads and causes problems like "Could not load org.apache.logging.log4j.core.config.ConfiguratonFileWatcher$ReconfigurationWorker." The new shutdown code causes Log4j to wait up to the timeout for resources like thread pools to shutdown after requesting the cancellation of scheduled jobs, which the ReconfigurationWorker is. (Detail: I renamed ReconfigurationWorker to ReconfigurationRunnable) Without the timeout request, Log4j shutsdown immediately but does not wait for jobs to complete. > Log4j threads are leaking on Tomcat shutdown > -------------------------------------------- > > Key: LOG4J2-1259 > URL: https://issues.apache.org/jira/browse/LOG4J2-1259 > Project: Log4j 2 > Issue Type: Bug > Components: Appenders > Affects Versions: 2.5 > Reporter: Misagh Moayyed > > Running log4j2 v2.5 with disruptor 3.3.x. AsyncLoggers configured. log4j-web > also included in the web application deployed in Tomcat 8. The context > listener is correctly starting up and shutting down, catalina.properties does > not include the log4j*.jar entry. Yet I see: > {code} > 20-Jan-2016 14:59:26.322 WARNING [localhost-startStop-2] > org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The > web application [cas-server-webapp-4.3.0-SNAPSHOT] appears to have started a > thread named [Log4j2-Log4j2Scheduled-5] but has failed to stop it. This is > very likely to create a memory leak. Stack trace of thread: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) > > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078) > > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093) > > java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) > java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > java.lang.Thread.run(Thread.java:745) > 20-Jan-2016 14:59:26.336 WARNING [localhost-startStop-2] > org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The > web application [cas-server-webapp-4.3.0-SNAPSHOT] appears to have started a > thread named [Log4j2-AsyncLoggerConfig-6] but has failed to stop it. This is > very likely to create a memory leak. Stack trace of thread: > sun.misc.Unsafe.park(Native Method) > java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > > java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) > com.lmax.disruptor.BlockingWaitStrategy.waitFor(BlockingWaitStrategy.java:45) > > com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56) > com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:124) > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > java.lang.Thread.run(Thread.java:745) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org