You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Ralph Goers (Jira)" <ji...@apache.org> on 2022/09/08 06:03:00 UTC
[jira] [Commented] (LOG4J2-3500) Deadlock in Log4j
[ https://issues.apache.org/jira/browse/LOG4J2-3500?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17601643#comment-17601643 ]
Ralph Goers commented on LOG4J2-3500:
-------------------------------------
This is not a deadlock. There are 2143 threads waiting for the lock above. The thread holding the lock is doing:
{code:java}
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.apache.sshd.common.channel.Window.waitForCondition(Window.java:291)
at org.apache.sshd.common.channel.Window.waitForSpace(Window.java:251)
- locked <0x00000006a824d3b0> (a org.apache.sshd.common.channel.Window)
at org.apache.sshd.common.channel.ChannelOutputStream.flush(ChannelOutputStream.java:182)
- locked <0x00000006a824d5a0> (a org.apache.sshd.common.channel.ChannelOutputStream)
at org.apache.sshd.common.channel.ChannelOutputStream.write(ChannelOutputStream.java:123)
- locked <0x00000006a824d5a0> (a org.apache.sshd.common.channel.ChannelOutputStream)
at org.apache.sshd.common.channel.ChannelOutputStream.write(ChannelOutputStream.java:102)
- locked <0x00000006a824d5a0> (a org.apache.sshd.common.channel.ChannelOutputStream)
at org.jline.terminal.impl.LineDisciplineTerminal.processOutputByte(LineDisciplineTerminal.java:253)
at org.jline.terminal.impl.LineDisciplineTerminal$FilteringOutputStream.write(LineDisciplineTerminal.java:294)
at java.io.PrintStream.write(PrintStream.java:480)
- locked <0x00000006a824dd68> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)
- locked <0x00000006a824ddc0> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185)
at java.io.PrintStream.write(PrintStream.java:527)
- locked <0x00000006a824dd68> (a java.io.PrintStream)
at java.io.PrintStream.print(PrintStream.java:669)
at java.io.PrintStream.append(PrintStream.java:1065)
at org.apache.karaf.log.command.DisplayLog.printEvent(DisplayLog.java:126)
at org.apache.karaf.log.command.DisplayLog.printEvent(DisplayLog.java:110)
at org.apache.karaf.log.command.LogTail.lambda$execute$0(LogTail.java:52)
at org.apache.karaf.log.command.LogTail$$Lambda$376/1279100595.doAppend(Unknown Source)
at org.apache.karaf.log.core.internal.LogServiceImpl.doAppend(LogServiceImpl.java:181)
- locked <0x0000000670d72930> (a org.apache.karaf.log.core.internal.LogServiceImpl)
at org.ops4j.pax.logging.spi.support.PaxAppenderProxy.doAppend(PaxAppenderProxy.java:69)
{code}
There are 10 threads that look like this. The fact that they are all in a method named "waitForSpace" implies there is something going on with what looks like writing via ssh. I suspect the problem here is that the appender is simply too slow.
In any case, this is not a Log4j problem.
> Deadlock in Log4j
> -----------------
>
> Key: LOG4J2-3500
> URL: https://issues.apache.org/jira/browse/LOG4J2-3500
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.12.1
> Reporter: Gianfranco Amatore
> Priority: Major
> Attachments: tdump.2022-03-31 13_10_15.out
>
>
> I encountered a problem on our ESB (Red Hat Fuse 7.6), it seems that the log4j dead locked while writing the log file. The whole jvm remains blocked for about 10 mins, then it starts again executing. Attached the thread-dump that shows the deadlock.
>
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)