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

Reply via email to