You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "yimiluo (Jira)" <ji...@apache.org> on 2022/07/08 12:24:00 UTC

[jira] [Updated] (LOG4J2-3549) The printed thread deadlock

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

yimiluo updated LOG4J2-3549:
----------------------------
    Description: 
When we were printing the log, the printed thread was deadlocked, causing the service to go down. The following is the exception information:

!image-2022-07-08-20-20-11-818.png|width=895,height=537!
{code:java}
[arthas@1]$ thread -b
"http-nio-8080-exec-5" Id=97 RUNNABLE (in native)
    at java.base@11.0.8-ga/java.io.FileOutputStream.writeBytes(Native Method)
    at java.base@11.0.8-ga/java.io.FileOutputStream.write(FileOutputStream.java:354)
    at java.base@11.0.8-ga/java.io.BufferedOutputStream.write(BufferedOutputStream.java:123)
    -  locked java.io.BufferedOutputStream@ea9396a
    at java.base@11.0.8-ga/java.io.PrintStream.write(PrintStream.java:559)
    -  locked java.io.PrintStream@3ff1e46c
    at org.apache.logging.log4j.core.util.CloseShieldOutputStream.write(CloseShieldOutputStream.java:53)
    at org.apache.logging.log4j.core.appender.OutputStreamManager.writeToDestination(OutputStreamManager.java:250)
    at org.apache.logging.log4j.core.appender.OutputStreamManager.flushBuffer(OutputStreamManager.java:283)
    -  locked org.apache.logging.log4j.core.appender.OutputStreamManager@7ba4158c <---- but blocks 236 other threads!
    at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:294)
    -  locked org.apache.logging.log4j.core.appender.OutputStreamManager@7ba4158c <---- but blocks 236 other threads!
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:199)
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
    at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
    at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:542)
    at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:500)
    at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:483)
    at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417)
    at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
    at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
    at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2205)
    at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2159)
    at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2142)
    at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2028)
    at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1891)
    at org.apache.logging.slf4j.Log4jLogger.info(Log4jLogger.java:194) {code}
 

I don't know what the solution is now. I would be very grateful if you could reply.

  was:
When we were printing the log, the printed thread was deadlocked, causing the service to go down. The following is the exception information:

!image-2022-07-08-20-20-11-818.png|width=647,height=388!
{code:java}
[arthas@1]$ thread -b
"http-nio-8080-exec-5" Id=97 RUNNABLE (in native)
    at java.base@11.0.8-ga/java.io.FileOutputStream.writeBytes(Native Method)
    at java.base@11.0.8-ga/java.io.FileOutputStream.write(FileOutputStream.java:354)
    at java.base@11.0.8-ga/java.io.BufferedOutputStream.write(BufferedOutputStream.java:123)
    -  locked java.io.BufferedOutputStream@ea9396a
    at java.base@11.0.8-ga/java.io.PrintStream.write(PrintStream.java:559)
    -  locked java.io.PrintStream@3ff1e46c
    at org.apache.logging.log4j.core.util.CloseShieldOutputStream.write(CloseShieldOutputStream.java:53)
    at org.apache.logging.log4j.core.appender.OutputStreamManager.writeToDestination(OutputStreamManager.java:250)
    at org.apache.logging.log4j.core.appender.OutputStreamManager.flushBuffer(OutputStreamManager.java:283)
    -  locked org.apache.logging.log4j.core.appender.OutputStreamManager@7ba4158c <---- but blocks 236 other threads!
    at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:294)
    -  locked org.apache.logging.log4j.core.appender.OutputStreamManager@7ba4158c <---- but blocks 236 other threads!
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:199)
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
    at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
    at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
    at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:542)
    at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:500)
    at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:483)
    at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417)
    at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
    at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
    at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2205)
    at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2159)
    at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2142)
    at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2028)
    at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1891)
    at org.apache.logging.slf4j.Log4jLogger.info(Log4jLogger.java:194) {code}
 

I don't know what the solution is now. I would be very grateful if you could reply.


> The printed thread deadlock
> ---------------------------
>
>                 Key: LOG4J2-3549
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3549
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Log4j 1.2 bridge
>    Affects Versions: 2.17.2
>            Reporter: yimiluo
>            Priority: Minor
>         Attachments: image-2022-07-08-20-20-11-818.png
>
>
> When we were printing the log, the printed thread was deadlocked, causing the service to go down. The following is the exception information:
> !image-2022-07-08-20-20-11-818.png|width=895,height=537!
> {code:java}
> [arthas@1]$ thread -b
> "http-nio-8080-exec-5" Id=97 RUNNABLE (in native)
>     at java.base@11.0.8-ga/java.io.FileOutputStream.writeBytes(Native Method)
>     at java.base@11.0.8-ga/java.io.FileOutputStream.write(FileOutputStream.java:354)
>     at java.base@11.0.8-ga/java.io.BufferedOutputStream.write(BufferedOutputStream.java:123)
>     -  locked java.io.BufferedOutputStream@ea9396a
>     at java.base@11.0.8-ga/java.io.PrintStream.write(PrintStream.java:559)
>     -  locked java.io.PrintStream@3ff1e46c
>     at org.apache.logging.log4j.core.util.CloseShieldOutputStream.write(CloseShieldOutputStream.java:53)
>     at org.apache.logging.log4j.core.appender.OutputStreamManager.writeToDestination(OutputStreamManager.java:250)
>     at org.apache.logging.log4j.core.appender.OutputStreamManager.flushBuffer(OutputStreamManager.java:283)
>     -  locked org.apache.logging.log4j.core.appender.OutputStreamManager@7ba4158c <---- but blocks 236 other threads!
>     at org.apache.logging.log4j.core.appender.OutputStreamManager.flush(OutputStreamManager.java:294)
>     -  locked org.apache.logging.log4j.core.appender.OutputStreamManager@7ba4158c <---- but blocks 236 other threads!
>     at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:199)
>     at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
>     at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
>     at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
>     at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
>     at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
>     at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
>     at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:542)
>     at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:500)
>     at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:483)
>     at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417)
>     at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
>     at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
>     at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2205)
>     at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2159)
>     at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2142)
>     at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2028)
>     at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1891)
>     at org.apache.logging.slf4j.Log4jLogger.info(Log4jLogger.java:194) {code}
>  
> I don't know what the solution is now. I would be very grateful if you could reply.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)