You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Ralph Goers (JIRA)" <ji...@apache.org> on 2015/02/15 17:05:12 UTC

[jira] [Closed] (LOG4J2-953) RollingFileAppender can have unnecessary lock contention

     [ https://issues.apache.org/jira/browse/LOG4J2-953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ralph Goers closed LOG4J2-953.
------------------------------

> RollingFileAppender can have unnecessary lock contention
> --------------------------------------------------------
>
>                 Key: LOG4J2-953
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-953
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.1
>            Reporter: Ralph Goers
>
> We have a stack trace that shows a large number of threads blocked. They are basically of two kinds:
> {code}
> "TP-Processor107" daemon prio=10 tid=0x000000001440c000 nid=0x4689 waiting for monitor entry [0x00002aadb6621000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
> 	at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.checkRollover(RollingFileManager.java)
> 	- waiting to lock <0x000000064008c428> (a org.apache.logging.log4j.core.appender.rolling.RollingFileManager)
> 	at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:87)
> 	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367)
> 	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112)
> 	at org.apache.log4j.Category.forcedLog(Category.java:341)
> 	at org.apache.log4j.Category.log(Category.java:428)
> 	at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199)
> {code}
> {code}
> "TP-Processor106" daemon prio=10 tid=0x0000000014409800 nid=0x4688 waiting for monitor entry [0x00002aadae5e7000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
> 	at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.write(RollingFileManager.java)
> 	- waiting to lock <0x000000064008c428> (a org.apache.logging.log4j.core.appender.rolling.RollingFileManager)
> 	at org.apache.logging.log4j.core.appender.OutputStreamManager.write(OutputStreamManager.java:136)
> 	at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:110)
> 	at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:88)
> 	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
> 	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:367)
> 	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:112)
> 	at org.apache.log4j.Category.forcedLog(Category.java:341)
> 	at org.apache.log4j.Category.log(Category.java:428)
> 	at org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199)
> {code}
> checkrollover should not be blocked by a thread that is writing to the file. Likewise, there is no reason for a thread to be blocked from writing while checkrollover is called.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org