Rupesh created LOG4J2-3479:
------------------------------

             Summary: While calling logger.error(ex.getMessage(),ex) causing 
stackoverflow and java.lang.OutOfMemoryError: Java heap space with repetitive 
call of following stacktrace. 
                 Key: LOG4J2-3479
                 URL: https://issues.apache.org/jira/browse/LOG4J2-3479
             Project: Log4j 2
          Issue Type: Bug
          Components: Log4j-to-SLF4J
    Affects Versions: 2.17.0
         Environment: OpenJDK 64-Bit 1.8.0_241

Apache Tomcat 8.5.51


Operating System: Linux Cent OS 2.6.32-754.33.1.el6.centos.plus.x86_64, 
2.6.32-754.33.1.el6.x86_64
            Reporter: Rupesh


While calling logger.error(ex.getMessage(),ex) causing *stackoverflow and 
java.lang.OutOfMemoryError: Java heap space* with repeatative call of following 
stacktrace. it is happening randomly on our application. *Log4j2 version is 
2.17.0*
{code:java}
 at 
org.apache.logging.log4j.spi.AbstractLogger.handleLogMessageException(Ljava/lang/Throwable;Ljava/lang/String;Lorg/apache/logging/log4j/message/Message;)V
 (AbstractLogger.java:2225)
  at 
org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(Ljava/lang/String;Ljava/lang/StackTraceElement;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2208)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2159)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2142)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logMessage(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 (AbstractLogger.java:2058)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 (AbstractLogger.java:1931)
  at 
org.apache.logging.log4j.spi.AbstractLogger.warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
 (AbstractLogger.java:2805)
  at 
org.apache.logging.log4j.spi.AbstractLogger.handleLogMessageException(Ljava/lang/Throwable;Ljava/lang/String;Lorg/apache/logging/log4j/message/Message;)V
 (AbstractLogger.java:2225)
  at 
org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(Ljava/lang/String;Ljava/lang/StackTraceElement;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2208)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2159)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Lorg/apache/logging/log4j/message/Message;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2142)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logMessage(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Ljava/lang/Throwable;)V
 (AbstractLogger.java:2017)
  at 
org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(Ljava/lang/String;Lorg/apache/logging/log4j/Level;Lorg/apache/logging/log4j/Marker;Ljava/lang/String;Ljava/lang/Throwable;)V
 (AbstractLogger.java:1983) {code}
Lo4j2.xml configuration file
{code:java}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config";
               packages="custom.appender">
    <Appenders>
        <Routing name="CustomRouting">
            <Routes pattern="${sys:pathToLogfile}">
                <Route>
                    <CustomRollingRandomAccessFile name="FILE"
                        fileName="${sys:pathToLogfile}/${date:yyyy-MM-dd}.log"
                        filePattern="${sys:pathToLogfile}/%d{yyyy-MM-dd}.log.gz"
                        immediateFlush="true" append="true">
                        <PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss 
zzz} | [%t] %C{2} (%F:%L) - %m | %X%n" />
                        <Policies>
                            <TimeBasedTriggeringPolicy interval="1" 
modulate="true" />
                        </Policies>
                        <DefaultRolloverStrategy>
                            <Delete basePath="${sys:pathToLogfile}">
                                <IfFileName glob="//*.log.gz" />
                                <IfLastModified age="60d" />
                            </Delete>
                        </DefaultRolloverStrategy>
                    </CustomRollingRandomAccessFile>
                </Route>
            </Routes>
        </Routing>      
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss zzz} [%t] 
%C{2} (%F:%L) - %m | %X%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="ERROR" includeLocation="true" >            
            <AppenderRef ref="CustomRouting">
                <ThreadContextMapFilter onMatch="DENY" onMismatch="ACCEPT">
                    <KeyValuePair key="Dir" value="customval" />
                </ThreadContextMapFilter>
            </AppenderRef>
        </Root>
    </Loggers>
</Configuration> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to