[
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]