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

Michael Kloster commented on LOG4J2-222:
----------------------------------------

I've retested using 3.0 as the version property in web.xml and removing 
log4j*.jar in the jarsToSkip of catalina.properties on tomcat 7.0.42 and I get 
the following output on shutdown:

{code}
Jul 28, 2013 9:55:59 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jul 28, 2013 9:55:59 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 28, 2013 9:55:59 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 841 ms
Jul 28, 2013 9:56:09 AM org.apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the 
Server instance.
Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
Jul 28, 2013 9:56:09 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
Jul 28, 2013 9:56:09 AM org.apache.catalina.loader.WebappClassLoader 
checkThreadLocalMapForLeaks
SEVERE: The web application [/asynclog] created a ThreadLocal with key of type 
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@648bfdea]) and a value of 
type [org.apache.logging.log4j.core.async.AsyncLogger.Info] (value 
[org.apache.logging.log4j.core.async.AsyncLogger$Info@4e26d560]) but failed to 
remove it when the web application was stopped. Threads are going to be renewed 
over time to try and avoid a probable memory leak.
Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8080"]
Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
Jul 28, 2013 9:56:09 AM org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
{code}

{code:xml|title=web.xml|borderStyle=solid}
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd";
  version="3.0"
  metadata-complete="true">

    <description>
      Async Log Server Example
    </description>
    <display-name>Async Log Server Example</display-name>

</web-app>
{code}

{code:title=catalina.properties|borderStyle=solid}
tomcat.util.scan.DefaultJarScanner.jarsToSkip=\
bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\
annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,\
catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-tribes.jar,\
jasper.jar,jasper-el.jar,ecj-*.jar,\
tomcat-api.jar,tomcat-util.jar,tomcat-coyote.jar,tomcat-dbcp.jar,\
tomcat-jni.jar,tomcat-spdy.jar,\
tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,\
tomcat-juli-adapters.jar,catalina-jmx-remote.jar,catalina-ws.jar,\
tomcat-jdbc.jar,\
tools.jar,\
commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,\
commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,\
commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,\
commons-math*.jar,commons-pool*.jar,\
jstl.jar,\
geronimo-spec-jaxrpc*.jar,wsdl4j*.jar,\
ant.jar,ant-junit*.jar,aspectj*.jar,jmx.jar,h2*.jar,hibernate*.jar,httpclient*.jar,\
jmx-tools.jar,jta*.jar,mail*.jar,slf4j*.jar,\
xercesImpl.jar,xmlParserAPIs.jar,xml-apis.jar,\
junit.jar,junit-*.jar,ant-launcher.jar
{code}

I don't mean for you to debug my code. I apologize in advance if I've missed 
anything obvious (again!).

                
> Async Logger threadpool not shut down by Tomcat shutdown
> --------------------------------------------------------
>
>                 Key: LOG4J2-222
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-222
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-beta5
>            Reporter: Remko Popma
>             Fix For: 2.0-beta6
>
>
> From the user mailing list - conversation with Steven Yang:
> Looks like Tomcat shutdown checks for memory leaks and notices that the 
> Disruptor threadpool used by async loggers has not been shut down.
> Is there any way to pick up a Tomcat shutdown signal and use that to trigger 
> log subsystem shutdown?
> -------------------------
> QUOTING STEVEN:
> Thanks, I tried using asyncRoot and everything seems to log fine and I do see 
> a lot of logs.
> And logs do seem to be flushed immediately so I do not know if the hook on 
> shutdown is been called correctly or not.
> I am using struts and spring so I see a lot of logs (log level at DEBUG) just 
> by starting up tomcat, so I am wondering when I use <root> how come I dont 
> see any log at all? how much log do I have to write before it starts to flush 
> out? 
> and one thing I found is that when I use asyncRoot and when I shutdown tomcat 
> I see the following message regarding to clearing references and thread local.
> The last one is related to log4j.
> I am trying this on tomcat 6.0.29. 
> 四月 28, 2013 8:34:46 上午 org.apache.catalina.loader.WebappClassLoader 
> clearReferencesJdbc
> SEVERE: The web application [/test] registered the JBDC driver 
> [org.h2.Driver] but failed to unregister it when the web application was 
> stopped. To prevent a memory leak, the JDBC Driver has been forcibly 
> unregistered.
> 四月 28, 2013 8:34:46 上午 org.apache.catalina.loader.WebappClassLoader 
> clearReferencesThreads
> SEVERE: The web application [/test] appears to have started a thread named 
> [pool-2-thread-1] but has failed to stop it. This is very likely to create a 
> memory leak.
> 四月 28, 2013 8:34:46 上午 org.apache.catalina.loader.WebappClassLoader 
> clearThreadLocalMap
> SEVERE: The web application [/test] created a ThreadLocal with key of type 
> [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@454e119d]) and a value 
> of type [com.opensymphony.xwork2.inject.ContainerImpl] (value 
> [com.opensymphony.xwork2.inject.ContainerImpl@8667df7]) but failed to remove 
> it when the web application was stopped. This is very likely to create a 
> memory leak.
> 四月 28, 2013 8:34:46 上午 org.apache.catalina.loader.WebappClassLoader 
> clearThreadLocalMap
> SEVERE: The web application [/test] created a ThreadLocal with key of type 
> [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@d7e770]) and a value of 
> type [org.apache.logging.log4j.core.impl.Log4jLogEvent] (value 
> [Logger=org.springframework.beans.factory.support.DefaultListableBeanFactory 
> Level=INFO Message=Destroying singletons in 
> org.springframework.beans.factory.support.DefaultListableBeanFactory@61e118f9:
>  defining beans 
> [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframewo...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to