[ 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-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org