Re: Catalina.out trace : memory leak

2014-04-27 Thread Remko Popma
Mahesh,

Sorry, I've been unable to spend much time on log4j recently. Can I ask you to 
raise one or more Jiras for the issues you found? (Esp. the NPE in 
NameAbbreviator sounds like a separate bug.)
The volume of mails on this list is quite high and without a Jira I'm worried 
it'll just drop off the radar and won't get addressed...

Thanks!
Remko

Sent from my iPhone

 On 2014/04/11, at 11:43, Mahesh Dilhan mail.mahesh...@gmail.com wrote:
 
 side note ; java version : JDK 1.6.0_10
 
 Remko
 
 Can you share a dummy maven webapp [.tar] some where in
 http://logging.apache.org/log4j/2.x/manual/async.html
 , with necessary dependencies  and [*Async]* configuration for log4j2.xml
 So ppl can just build and deploy it in a tomcat container [  7.0.40 ], and
 provide feedback, as this might be a problem in my configuration
 
 steps of test case : deploy/ start/stop, trace catalina.out
 
 Thanks in advance
 
 
 On Fri, Apr 11, 2014 at 7:49 AM, Mahesh Dilhan 
 mail.mahesh...@gmail.comwrote:
 
 Observed followings after
 
 - removing
 Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 from catalina.properties
 - change Root .. /Root tag to
AsyncRoot level=INFO includeLocation=false
AppenderRef ref=RollingFile-${web:contextPath}/
/AsyncRoot
 
 
 On start-up
 
 014-04-11 07:43:03,640 ERROR An exception occurred processing Appender
 RollingFile-/app java.lang.NullPointerException
   at java.lang.StringBuilder.init(StringBuilder.java:92)
   at
 org.apache.logging.log4j.core.pattern.NameAbbreviator$PatternAbbreviator.abbreviate(NameAbbreviator.java:286)
   at
 org.apache.logging.log4j.core.pattern.NamePatternConverter.abbreviate(NamePatternConverter.java:53)
   at
 org.apache.logging.log4j.core.pattern.LoggerPatternConverter.format(LoggerPatternConverter.java:64)
   at
 org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
   at
 org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:172)
   at
 org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:52)
   at
 org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:45)
   at
 org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:118)
   at
 org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:96)
   at
 org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
   at
 org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
   at
 org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:117)
   at
 org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
   at
 org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
   at
 com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
   at
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)
 
 
 Also Console
 Apr 11, 2014 7:42:49 AM org.apache.catalina.loader.WebappClassLoader
 checkThreadLocalMapForLeaks
 SEVERE: The web application [/clearing-newcdev10] created a ThreadLocal
 with key of type [java.lang.ThreadLocal] (value
 [java.lang.ThreadLocal@131d70a]) and a value of type [
 org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
 [org.apache.logging.log4j.core.async.AsyncLogger$Info@11cd743]) 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.
 
 
 
 *Now JConsole has two thread *
 
 *Name: AsyncLoggerConfig-1*
 State: TIMED_WAITING
 Total blocked: 0  Total waited: 307,234
 
 Stack trace:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)
 
 com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)
 
 com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)
 
 com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)
 com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)
 
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 java.lang.Thread.run(Thread.java:619)
 
 
 *Name: AsyncLogger-1*
 State: TIMED_WAITING
 Total blocked: 0  Total waited: 325,479
 
 Stack trace:
 sun.misc.Unsafe.park(Native Method)
 

Re: Catalina.out trace : memory leak

2014-04-10 Thread Mahesh Dilhan
HI

Answers are in blue

This may be caused by the LoggerContext.stop() method not being called.

Which version of Tomcat are you using?  Special care is needed for Tomcat
7.0.40 and older.
*apache-tomcat-7.0.47*

A similar issue, LOG4J2-578 seemed to be caused by a config issue where the
version number in web.xml was incorrect.
Can you check this?

*web-app xmlns=http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
http://www.w3.org/2001/XMLSchema-instance
 xsi:schemaLocation=http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee*
*http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd   version=3.0
 metadata-complete=true*

*WEB-INF/lib does not contains any servlet-api, [tomcat container provides
the servlet-api.jar] *
Also, are the log4j jars under the shared Catalina lib? No
I suspect the problem goes away if you put the log4j jars under your
webapp's WEB-INF/lib folder.

*Dependencies are located in WEB-INF/lib ,*
*dependency*
*groupIdcom.lmax/groupId*
*artifactIddisruptor/artifactId*
*version3.2.1/version*
*/dependency *
*dependency*
*groupIdorg.apache.logging.log4j/groupId*
*artifactIdlog4j-api/artifactId*
*version2.0-rc1/version*
*/dependency*
*dependency*
*groupIdorg.apache.logging.log4j/groupId*
*artifactIdlog4j-core/artifactId*
*version2.0-rc1/version*
*/dependency*
*dependency*
*groupIdorg.apache.logging.log4j/groupId*
*artifactIdlog4j-slf4j-impl/artifactId*
*version2.0-rc1/version*
*/dependency*
*dependency*
*groupIdorg.apache.logging.log4j/groupId*
*artifactIdlog4j-1.2-api/artifactId*
*version2.0-rc1/version*
*/dependency*


*For test 1 Configurations are  in -catalina.properties   for test 2 that
is in -catalina.sh [CATALINA_OPTS] , in both occation, it worked*
*Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector*
*log4j2.disable.jmx=true*

But I still get following console out


2014-04-10 12:56:09,120 DEBUG Shutting down OutputStreamManager SYSTEM_OUT
2014-04-10 12:56:09,123 DEBUG JMX disabled for log4j2. Not registering
MBeans.
2014-04-10 12:56:09,168 DEBUG Using default SystemClock for timestamps
2014-04-10 12:56:09,169 DEBUG AsyncLogger.ThreadNameStrategy=CACHED
2014-04-10 12:56:09,171 DEBUG property AsyncLogger.WaitStrategy=null
2014-04-10 12:56:09,173 DEBUG disruptor event handler uses
SleepingWaitStrategy
2014-04-10 12:56:09,197 DEBUG No AsyncLogger.ExceptionHandler specified
2014-04-10 12:56:09,203 DEBUG Starting AsyncLogger disruptor with
ringbuffer size 262144...

SEVERE: The web application [/app] created a ThreadLocal with key of type
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@17b3a1e]) and a value
of type [org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
[org.apache.logging.log4j.core.async.AsyncLogger$Info@1aca2de]) 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 10, 2014 2:53:28 PM org.apache.catalina.loader.WebappClassLoader
checkThreadLocalMapForLeaks



*Also JConsole*

*Name: AsyncLogger-1*
*State: TIMED_WAITING*
*Total blocked: 1  Total waited: 228,630 [ this number getting increased ]*

*Stack trace: *
*sun.misc.Unsafe.park(Native Method)*
*java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)*
*com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)*
*com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)*
*com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)*
*com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)*
*java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)*
*java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)*
*java.lang.Thread.run(Thread.java:619)*


On Thu, Apr 10, 2014 at 9:51 AM, Remko Popma remko.po...@gmail.com wrote:

 This may be caused by the LoggerContext.stop() method not being called.

 Which version of Tomcat are you using? Special care is needed for Tomcat
 7.0.40 and older.

 A similar issue, LOG4J2-578 seemed to be caused by a config issue where
 the version number in web.xml was incorrect. Can you check this?

 Also, are the log4j jars under the shared Catalina lib? I suspect the
 problem goes away if you put the log4j jars under your webapp's WEB-INF/lib
 folder.

 Remko

 Sent from my iPhone

  On 2014/04/10, at 11:24, Mahesh Dilhan mail.mahesh...@gmail.com wrote:
 
  HI
 
  I got following catalina console out continuously  when I try to stop the
  web application.
 
  Brief  on configuration
  *version : rc1*
 
  *Log4j2.xml*
 

Re: Catalina.out trace : memory leak

2014-04-10 Thread Remko Popma
OK, One more thing you can try is, instead of making all loggers async by
setting system property
Log4jContextSelector=org.apache.logging.log4j.core.async.
AsyncLoggerContextSelector,

instead remove that property
and replace the Root/Root elements in your log4j2.xml config with
AsyncRoot/AsyncRoot elements. This will also use the disruptor but uses
a slightly different mechanism.

Do you still see the problem after these changes?



On Thu, Apr 10, 2014 at 6:58 PM, Mahesh Dilhan mail.mahesh...@gmail.comwrote:

 HI

 Answers are in blue

 This may be caused by the LoggerContext.stop() method not being called.

 Which version of Tomcat are you using?  Special care is needed for Tomcat
 7.0.40 and older.
 *apache-tomcat-7.0.47*

 A similar issue, LOG4J2-578 seemed to be caused by a config issue where the
 version number in web.xml was incorrect.
 Can you check this?

 *web-app xmlns=http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee
  xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
 http://www.w3.org/2001/XMLSchema-instance
  xsi:schemaLocation=http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee*
 *http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd   version=3.0
  metadata-complete=true*

 *WEB-INF/lib does not contains any servlet-api, [tomcat container provides
 the servlet-api.jar] *
 Also, are the log4j jars under the shared Catalina lib? No
 I suspect the problem goes away if you put the log4j jars under your
 webapp's WEB-INF/lib folder.

 *Dependencies are located in WEB-INF/lib ,*
 *dependency*
 *groupIdcom.lmax/groupId*
 *artifactIddisruptor/artifactId*
 *version3.2.1/version*
 */dependency *
 *dependency*
 *groupIdorg.apache.logging.log4j/groupId*
 *artifactIdlog4j-api/artifactId*
 *version2.0-rc1/version*
 */dependency*
 *dependency*
 *groupIdorg.apache.logging.log4j/groupId*
 *artifactIdlog4j-core/artifactId*
 *version2.0-rc1/version*
 */dependency*
 *dependency*
 *groupIdorg.apache.logging.log4j/groupId*
 *artifactIdlog4j-slf4j-impl/artifactId*
 *version2.0-rc1/version*
 */dependency*
 *dependency*
 *groupIdorg.apache.logging.log4j/groupId*
 *artifactIdlog4j-1.2-api/artifactId*
 *version2.0-rc1/version*
 */dependency*


 *For test 1 Configurations are  in -catalina.properties   for test 2 that
 is in -catalina.sh [CATALINA_OPTS] , in both occation, it worked*

 *Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector*
 *log4j2.disable.jmx=true*

 But I still get following console out


 2014-04-10 12:56:09,120 DEBUG Shutting down OutputStreamManager SYSTEM_OUT
 2014-04-10 12:56:09,123 DEBUG JMX disabled for log4j2. Not registering
 MBeans.
 2014-04-10 12:56:09,168 DEBUG Using default SystemClock for timestamps
 2014-04-10 12:56:09,169 DEBUG AsyncLogger.ThreadNameStrategy=CACHED
 2014-04-10 12:56:09,171 DEBUG property AsyncLogger.WaitStrategy=null
 2014-04-10 12:56:09,173 DEBUG disruptor event handler uses
 SleepingWaitStrategy
 2014-04-10 12:56:09,197 DEBUG No AsyncLogger.ExceptionHandler specified
 2014-04-10 12:56:09,203 DEBUG Starting AsyncLogger disruptor with
 ringbuffer size 262144...

 SEVERE: The web application [/app] created a ThreadLocal with key of type
 [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@17b3a1e]) and a
 value
 of type [org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
 [org.apache.logging.log4j.core.async.AsyncLogger$Info@1aca2de]) 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 10, 2014 2:53:28 PM org.apache.catalina.loader.WebappClassLoader
 checkThreadLocalMapForLeaks



 *Also JConsole*

 *Name: AsyncLogger-1*
 *State: TIMED_WAITING*
 *Total blocked: 1  Total waited: 228,630 [ this number getting increased ]*

 *Stack trace: *
 *sun.misc.Unsafe.park(Native Method)*
 *java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)*

 *com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)*

 *com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)*

 *com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)*
 *com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)*

 *java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)*

 *java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)*
 *java.lang.Thread.run(Thread.java:619)*


 On Thu, Apr 10, 2014 at 9:51 AM, Remko Popma remko.po...@gmail.com
 wrote:

  This may be caused by the LoggerContext.stop() method not being called.
 
  Which version of Tomcat are you using? Special 

Re: Catalina.out trace : memory leak

2014-04-10 Thread Mahesh Dilhan
Observed followings after

 - removing
 
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
from catalina.properties
- change Root .. /Root tag to
AsyncRoot level=INFO includeLocation=false
AppenderRef ref=RollingFile-${web:contextPath}/
/AsyncRoot


On start-up

014-04-11 07:43:03,640 ERROR An exception occurred processing Appender
RollingFile-/app java.lang.NullPointerException
   at java.lang.StringBuilder.init(StringBuilder.java:92)
   at
org.apache.logging.log4j.core.pattern.NameAbbreviator$PatternAbbreviator.abbreviate(NameAbbreviator.java:286)
   at
org.apache.logging.log4j.core.pattern.NamePatternConverter.abbreviate(NamePatternConverter.java:53)
   at
org.apache.logging.log4j.core.pattern.LoggerPatternConverter.format(LoggerPatternConverter.java:64)
   at
org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
   at
org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:172)
   at
org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:52)
   at
org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:45)
   at
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:118)
   at
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:96)
   at
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
   at
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
   at
org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:117)
   at
org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
   at
org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
   at
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
   at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:619)


Also Console
Apr 11, 2014 7:42:49 AM org.apache.catalina.loader.WebappClassLoader
checkThreadLocalMapForLeaks
SEVERE: The web application [/clearing-newcdev10] created a ThreadLocal
with key of type [java.lang.ThreadLocal] (value
[java.lang.ThreadLocal@131d70a]) and a value of type [
org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
[org.apache.logging.log4j.core.async.AsyncLogger$Info@11cd743]) 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.



*Now JConsole has two thread *

*Name: AsyncLoggerConfig-1*
State: TIMED_WAITING
Total blocked: 0  Total waited: 307,234

Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)
com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)
com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)
com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)


*Name: AsyncLogger-1*
State: TIMED_WAITING
Total blocked: 0  Total waited: 325,479

Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)
com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)
com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)
com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)




On Thu, Apr 10, 2014 at 8:45 PM, Remko Popma remko.po...@gmail.com wrote:

 OK, One more thing you can try is, instead of making all loggers async by
 setting system property
 Log4jContextSelector=org.apache.logging.log4j.core.async.
 AsyncLoggerContextSelector,

 instead remove that property
 and replace the Root/Root elements in your log4j2.xml config with
 AsyncRoot/AsyncRoot elements. This will also use the disruptor but uses
 a slightly different mechanism.

 Do you still see the problem after these changes?



 On Thu, Apr 10, 

Re: Catalina.out trace : memory leak

2014-04-10 Thread Mahesh Dilhan
side note ; java version : JDK 1.6.0_10

Remko

Can you share a dummy maven webapp [.tar] some where in
http://logging.apache.org/log4j/2.x/manual/async.html
 , with necessary dependencies  and [*Async]* configuration for log4j2.xml
So ppl can just build and deploy it in a tomcat container [  7.0.40 ], and
provide feedback, as this might be a problem in my configuration

steps of test case : deploy/ start/stop, trace catalina.out

Thanks in advance


On Fri, Apr 11, 2014 at 7:49 AM, Mahesh Dilhan mail.mahesh...@gmail.comwrote:

 Observed followings after

  - removing
  
 Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 from catalina.properties
 - change Root .. /Root tag to
 AsyncRoot level=INFO includeLocation=false
 AppenderRef ref=RollingFile-${web:contextPath}/
 /AsyncRoot


 On start-up

 014-04-11 07:43:03,640 ERROR An exception occurred processing Appender
 RollingFile-/app java.lang.NullPointerException
at java.lang.StringBuilder.init(StringBuilder.java:92)
at
 org.apache.logging.log4j.core.pattern.NameAbbreviator$PatternAbbreviator.abbreviate(NameAbbreviator.java:286)
at
 org.apache.logging.log4j.core.pattern.NamePatternConverter.abbreviate(NamePatternConverter.java:53)
at
 org.apache.logging.log4j.core.pattern.LoggerPatternConverter.format(LoggerPatternConverter.java:64)
at
 org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
at
 org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:172)
at
 org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:52)
at
 org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:45)
at
 org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:118)
at
 org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:96)
at
 org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:97)
at
 org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:425)
at
 org.apache.logging.log4j.core.async.AsyncLoggerConfig.asyncCallAppenders(AsyncLoggerConfig.java:117)
at
 org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:222)
at
 org.apache.logging.log4j.core.async.AsyncLoggerConfigHelper$Log4jEventWrapperHandler.onEvent(AsyncLoggerConfigHelper.java:207)
at
 com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
at
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)


 Also Console
 Apr 11, 2014 7:42:49 AM org.apache.catalina.loader.WebappClassLoader
 checkThreadLocalMapForLeaks
 SEVERE: The web application [/clearing-newcdev10] created a ThreadLocal
 with key of type [java.lang.ThreadLocal] (value
 [java.lang.ThreadLocal@131d70a]) and a value of type [
 org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
 [org.apache.logging.log4j.core.async.AsyncLogger$Info@11cd743]) 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.



 *Now JConsole has two thread *

 *Name: AsyncLoggerConfig-1*
 State: TIMED_WAITING
 Total blocked: 0  Total waited: 307,234

 Stack trace:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)

 com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)

 com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)

 com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)
 com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)

 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 java.lang.Thread.run(Thread.java:619)


 *Name: AsyncLogger-1*
 State: TIMED_WAITING
 Total blocked: 0  Total waited: 325,479

 Stack trace:
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:317)

 com.lmax.disruptor.SleepingWaitStrategy.applyWaitMethod(SleepingWaitStrategy.java:78)

 com.lmax.disruptor.SleepingWaitStrategy.waitFor(SleepingWaitStrategy.java:51)

 com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:55)
 com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:123)

 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

 

Catalina.out trace : memory leak

2014-04-09 Thread Mahesh Dilhan
HI

I got following catalina console out continuously  when I try to stop the
 web application.

Brief  on configuration
*version : rc1*

*Log4j2.xml*

Configuration status=OFF 
  Appenders
RollingRandomAccessFile name=RollingFile-${web:contextPath}
fileName=${sys:catalina.home}/logs/current/${web:contextPath}.log
immediateFlush=false append=false

 
filePattern=${sys:catalina.home}/logs/archived/%d{-MM-dd}${contextName}-%d{-MM-dd}.log.gz
  PatternLayout
Pattern%d %p %c{1.} [%t] %m%n/Pattern
  /PatternLayout
  Policies
TimeBasedTriggeringPolicy /
  /Policies
/RollingRandomAccessFile
  /Appenders
  Loggers
Root level=INFO includeLocation=false
  AppenderRef ref=RollingFile-${web:contextPath}/

/Root
  /Loggers
/Configuration

*Tomcat properties :*
 Asysnc logger [tomcat is configured with the property
{Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 }





Apr 08, 2014 12:32:17 PM org.apache.catalina.loader.WebappClassLoader
clearReferencesThreads
SEVERE: The web application [/app] appears to have started a thread named
[AsyncLogger-1] but has failed to stop it. *This is very likely to create a
memory leak.*
Apr 08, 2014 12:32:17 PM org.apache.catalina.loader.WebappClassLoader
checkThreadLocalMapForLeaks
SEVERE: The web application [/app] created a ThreadLocal with key of type
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@e8d7057]) and a value
of type [org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
[org.apache.logging.log4j.core.async.AsyncLogger$Info@67ca6737]) 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.



What could be missing in my configuration to run into a such console trace ?
What are the fixes I should look-into ?


Thanks


Re: Catalina.out trace : memory leak

2014-04-09 Thread Remko Popma
This may be caused by the LoggerContext.stop() method not being called. 

Which version of Tomcat are you using? Special care is needed for Tomcat 7.0.40 
and older. 

A similar issue, LOG4J2-578 seemed to be caused by a config issue where the 
version number in web.xml was incorrect. Can you check this?

Also, are the log4j jars under the shared Catalina lib? I suspect the problem 
goes away if you put the log4j jars under your webapp's WEB-INF/lib folder. 

Remko

Sent from my iPhone

 On 2014/04/10, at 11:24, Mahesh Dilhan mail.mahesh...@gmail.com wrote:
 
 HI
 
 I got following catalina console out continuously  when I try to stop the
 web application.
 
 Brief  on configuration
 *version : rc1*
 
 *Log4j2.xml*
 
 Configuration status=OFF 
  Appenders
RollingRandomAccessFile name=RollingFile-${web:contextPath}
 fileName=${sys:catalina.home}/logs/current/${web:contextPath}.log
 immediateFlush=false append=false
 
 filePattern=${sys:catalina.home}/logs/archived/%d{-MM-dd}${contextName}-%d{-MM-dd}.log.gz
  PatternLayout
Pattern%d %p %c{1.} [%t] %m%n/Pattern
  /PatternLayout
  Policies
TimeBasedTriggeringPolicy /
  /Policies
/RollingRandomAccessFile
  /Appenders
  Loggers
Root level=INFO includeLocation=false
  AppenderRef ref=RollingFile-${web:contextPath}/
 
/Root
  /Loggers
 /Configuration
 
 *Tomcat properties :*
 Asysnc logger [tomcat is configured with the property
 {Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 }
 
 
 
 
 
 Apr 08, 2014 12:32:17 PM org.apache.catalina.loader.WebappClassLoader
 clearReferencesThreads
 SEVERE: The web application [/app] appears to have started a thread named
 [AsyncLogger-1] but has failed to stop it. *This is very likely to create a
 memory leak.*
 Apr 08, 2014 12:32:17 PM org.apache.catalina.loader.WebappClassLoader
 checkThreadLocalMapForLeaks
 SEVERE: The web application [/app] created a ThreadLocal with key of type
 [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@e8d7057]) and a value
 of type [org.apache.logging.log4j.core.async.AsyncLogger.Info] (value
 [org.apache.logging.log4j.core.async.AsyncLogger$Info@67ca6737]) 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.
 
 
 
 What could be missing in my configuration to run into a such console trace ?
 What are the fixes I should look-into ?
 
 
 Thanks

-
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org