Thread: [Lilith-devel] [lilith] #96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender
Brought to you by:
huxhorn
From: lilith - T. i. <no...@so...> - 2011-04-30 16:01:59
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender -----------------------------------+---------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: new Priority: major | Milestone: unclassified Component: lilith-appender | Version: 0.9.40 Keywords: logback appender leak | -----------------------------------+---------------------------------------- I have a web application which I deploy in Tomcat 7.0.12. This application uses Lilith's ClassicMultiplexSocketAppender and Logback's RollingFileAppender. When I stop my application, Tomcat reports it found some (possible) memory leaks. When I am not using ClassicMultiplexSocketAppender it reports none. {{{ Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [SendBytes@SocketDataOutputStreamFactory[hostName=localhost, port=10001, connectionTimeout=10000, writeTimeout=5000]] but has failed to stop it. This is very likely to create a memory leak. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [lilithMultiplex Dispatcher] but has failed to stop it. This is very likely to create a memory leak. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [lilithMultiplex Heartbeat] but has failed to stop it. This is very likely to create a memory leak. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [Reconnection@SocketDataOutputStreamFactory[hostName=localhost, port=10001, connectionTimeout=10000, writeTimeout=5000]] but has failed to stop it. This is very likely to create a memory leak. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [TimeoutOutputStream Watchdog-Thread] but has failed to stop it. This is very likely to create a memory leak. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks SEVERE: The web application [/myApplication] created a ThreadLocal with key of type [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter.CloningNdcStackThreadLocal] (value [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter$CloningNdcStackThreadLocal@1ff83]) and a value of type [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter.NdcStack] (value [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter$NdcStack@12e0e2f]) 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. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks SEVERE: The web application [/myApplication] created a ThreadLocal with key of type [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter.CloningNdcStackThreadLocal] (value [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter$CloningNdcStackThreadLocal@1ff83]) and a value of type [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter.NdcStack] (value [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter$NdcStack@a53564]) 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. Apr 30, 2011 5:49:05 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks SEVERE: The web application [/myApplication] created a ThreadLocal with key of type [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter.CloningNdcStackThreadLocal] (value [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter$CloningNdcStackThreadLocal@1ff83]) and a value of type [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter.NdcStack] (value [de.huxhorn.lilith.logback.classic.SimpleNDCAdapter$NdcStack@54782a]) 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. }}} -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-04-30 16:03:08
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender -----------------------------------+---------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: new Priority: major | Milestone: unclassified Component: lilith-appender | Version: 0.9.40 Keywords: logback appender leak | -----------------------------------+---------------------------------------- Changes (by storm2000): * cc: storm2000 (added) -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:1> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-04-30 17:39:07
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender -----------------------------------+---------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: assigned Priority: major | Milestone: unclassified Component: lilith-appender | Version: 0.9.40 Keywords: logback appender leak | -----------------------------------+---------------------------------------- Changes (by huxhorn): * status: new => assigned Comment: Uuuh, nice find... I'll have a look into it... -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:2> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-04-30 20:04:12
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender -----------------------------------+---------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: assigned Priority: major | Milestone: unclassified Component: lilith-appender | Version: 0.9.40 Keywords: logback appender leak | -----------------------------------+---------------------------------------- Comment(by huxhorn): See http://wiki.apache.org/tomcat/MemoryLeakProtection This has likely the same reason as http://jira.qos.ch/browse/LBCLASSIC-183 had. Will evaluate Cekis fix of that issue. The issue of the threads that are still running isn't a bad one since they will quit on their own shortly afterwards. Anyway, it's not nice that those messages are emitted so I made sure that all threads are really dead before the shutdown method returns. storm2000, would you contact me at contact[at]lilith.huxhorn.de? I have a question concerning Tomcat 7 that you'll likely be able to answer. -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:3> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-04-30 23:25:50
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender ------------------------------+--------------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: closed Priority: major | Milestone: M8 Component: lilith-appender | Version: 0.9.40 Resolution: fixed | Keywords: logback appender leak ------------------------------+--------------------------------------------- Changes (by huxhorn): * status: assigned => closed * resolution: => fixed * milestone: unclassified => M8 Comment: Fixed in @2b03b8dcfbf046f57a66a4535750f9bd49deb4fb. I discovered that the standard Logback SocketAppender does still prevent proper unloading of the webapp. My multiplex appenders are working properly in the next release, though. -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:4> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-04-30 23:51:32
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender ------------------------------+--------------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: closed Priority: major | Milestone: M8 Component: lilith-appender | Version: 0.9.40 Resolution: fixed | Keywords: logback appender leak ------------------------------+--------------------------------------------- Comment(by huxhorn): See also http://jira.qos.ch/browse/LBCORE-205 -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:5> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-05-08 22:27:03
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender ------------------------------+--------------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: closed Priority: major | Milestone: M8 Component: lilith-appender | Version: 0.9.40 Resolution: fixed | Keywords: logback appender leak ------------------------------+--------------------------------------------- Comment(by storm2000): I switched to version 0.9.41 and I am still seeing this: {{{ May 9, 2011 12:02:16 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [SendBytes@SocketDataOutputStreamFactory[hostName=localhost, port=10001, connectionTimeout=10000, writeTimeout=5000]] but has failed to stop it. This is very likely to create a memory leak. May 9, 2011 12:02:16 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [lilithMultiplex Dispatcher] but has failed to stop it. This is very likely to create a memory leak. May 9, 2011 12:02:16 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [lilithMultiplex Heartbeat] but has failed to stop it. This is very likely to create a memory leak. May 9, 2011 12:02:16 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [Reconnection@SocketDataOutputStreamFactory[hostName=localhost, port=10001, connectionTimeout=10000, writeTimeout=5000]] but has failed to stop it. This is very likely to create a memory leak. May 9, 2011 12:02:16 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: The web application [/myApplication] appears to have started a thread named [TimeoutOutputStream Watchdog-Thread] but has failed to stop it. This is very likely to create a memory leak. }}} Did I miss something or was I supposed to wait until a new version of Logback comes out? I was under the impression you fixed this kind of issue as well. The "created a ThreadLocal with key..." issues are gone though. -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:6> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |
From: lilith - T. i. <no...@so...> - 2011-05-08 22:46:53
|
#96: Tomcat reports memory leaks when using ClassicMultiplexSocketAppender ------------------------------+--------------------------------------------- Reporter: storm2000 | Owner: huxhorn Type: defect | Status: closed Priority: major | Milestone: M8 Component: lilith-appender | Version: 0.9.40 Resolution: fixed | Keywords: logback appender leak ------------------------------+--------------------------------------------- Comment(by huxhorn): I suspect you are not shutting down the Logback system upon Webapp unload. You need to add a listener like in this file: https://github.com/huxi/lilith/blob/master/sandbox/logback-access- sandbox/src/main/webapp/WEB-INF/web.xml It is contained in the dependency <dependency> <groupId>de.huxhorn.lilith</groupId> <artifactId>de.huxhorn.lilith.logback.servlet</artifactId> </dependency> You may also try the one contained in logback-classic: ch.qos.logback.classic.selector.servlet.ContextDetachingSCL It is using JNDI but I haven't tried it, yet. -- Ticket URL: <http://sourceforge.net/apps/trac/lilith/ticket/96#comment:7> lilith <http://sourceforge.net/projects/lilith/> Lilith - the Logback Logging- and Access-Event-Viewer. |