[
https://issues.apache.org/jira/browse/LOG4J2-3549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17574541#comment-17574541
]
yimiluo commented on LOG4J2-3549:
---------------------------------
Is this kind of problem unavoidable and unsolvable when using synchronous logs?
Can we use asynchronous way of logging. When the ring buffer is full, customize
Appender and ErrorHandler to handle excess logs.
https://issues.apache.org/jira/browse/LOG4J2-2927
> The printed thread blocked
> --------------------------
>
> 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 blocked, 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 [email protected]/java.io.FileOutputStream.writeBytes(Native Method)
> at
> [email protected]/java.io.FileOutputStream.write(FileOutputStream.java:354)
> at
> [email protected]/java.io.BufferedOutputStream.write(BufferedOutputStream.java:123)
> - locked java.io.BufferedOutputStream@ea9396a
> at [email protected]/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)