[
https://issues.apache.org/jira/browse/LOG4J2-3479?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17527438#comment-17527438
]
Rupesh commented on LOG4J2-3479:
--------------------------------
I am not able to reproduce it, it happens on our production server.
> 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
> Priority: Critical
> Attachments: image-2022-04-18-10-38-39-889.png
>
>
> 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}
> Here is heap dump snapshot for the same which shows StatusMessage object's
> retained heap size.
> !image-2022-04-18-10-38-39-889.png!
--
This message was sent by Atlassian Jira
(v8.20.7#820007)