Frédéric Chuong created KARAF-6512:
--------------------------------------
Summary: Dead lock in LogServiceImpl
Key: KARAF-6512
URL: https://issues.apache.org/jira/browse/KARAF-6512
Project: Karaf
Issue Type: Bug
Components: karaf
Affects Versions: 4.2.7
Environment: Windows 10
{noformat}
Picked up JAVA_TOOL_OPTIONS: "-XX:+UsePerfData" "-Duser.language=en"
"-Duser.country=US" "-Duser.timezone=UTC" "-Dfile.encoding=UTF-8"
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment Zulu11.33+15-CA (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM Zulu11.33+15-CA (build 11.0.4+11-LTS, mixed mode)
{noformat}
(this was also encountered with Java 8)
Reporter: Frédéric Chuong
# Extract Karaf distribution
# Start Karaf instance {{karaf}}
# Open 2 clients (ssh)
## {{log:tail}}
# In main initial console
## {{log:set DEBUG org.apache.sshd}}
## Perform some actions such as {{feature:repo-add cellar}}, {{feature:install
cellar}}
# Sometime clients get disconnected, sometimes they are dead locked (use
{{threads}} commands to see or use external process like {{jconsole}})
# When dead lock happen, SSH server does not respond to new connections
This can also happen when {{log:tail}} is executing from the main console,
rendering the console ineffective.
{noformat}
"sshd-SshServer[46bcb190]-nio2-thread-3" Id=146 in BLOCKED on
lock=org.apache.karaf.log.core.internal.LogServiceImpl@46fdf7b8
owned by sshd-SshServer[46bcb190]-nio2-thread-4 Id=147
at
org.apache.karaf.log.core.internal.LogServiceImpl.doAppend(LogServiceImpl.java:176)
at
org.ops4j.pax.logging.spi.support.PaxAppenderProxy.doAppend(PaxAppenderProxy.java:69)
at
org.ops4j.pax.logging.log4j2.internal.bridges.PaxOsgiAppender.append(PaxOsgiAppender.java:100)
at
org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
at
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
at
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
at
org.apache.logging.log4j.core.config.LoggerConfig.logParent(LoggerConfig.java:534)
at
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:504)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
at
org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:154)
at
org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog0(PaxLoggerImpl.java:354)
at
org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog(PaxLoggerImpl.java:337)
at
org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.debug(PaxLoggerImpl.java:142)
at
org.ops4j.pax.logging.internal.TrackingLogger.debug(TrackingLogger.java:115)
at org.ops4j.pax.logging.slf4j.Slf4jLogger.debug(Slf4jLogger.java:340)
at
org.apache.sshd.common.io.nio2.Nio2Session.writePacket(Nio2Session.java:136)
at
org.apache.sshd.common.session.helpers.AbstractSession.doWritePacket(AbstractSession.java:1154)
- locked java.lang.Object@76a33827
at
org.apache.sshd.common.session.helpers.AbstractSession.writePacket(AbstractSession.java:1096)
at
org.apache.sshd.common.channel.AbstractChannel.sendResponse(AbstractChannel.java:369)
at
org.apache.sshd.server.channel.ChannelSession.sendResponse(ChannelSession.java:336)
at
org.apache.sshd.common.channel.AbstractChannel.handleChannelRequest(AbstractChannel.java:302)
at
org.apache.sshd.common.channel.AbstractChannel.handleRequest(AbstractChannel.java:270)
at
org.apache.sshd.common.session.helpers.AbstractConnectionService.channelRequest(AbstractConnectionService.java:517)
at
org.apache.sshd.common.session.helpers.AbstractConnectionService.process(AbstractConnectionService.java:341)
at
org.apache.sshd.common.session.helpers.AbstractSession.doHandleMessage(AbstractSession.java:614)
at
org.apache.sshd.common.session.helpers.AbstractSession.handleMessage(AbstractSession.java:547)
- locked java.lang.Object@1da148eb
at
org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1498)
at
org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:508)
- locked java.lang.Object@430f279b
at
org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:66)
at
org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:301)
at
org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:281)
at
org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:278)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler$$Lambda$562/0x0000000100634840.run(Unknown
Source)
at [email protected]/java.security.AccessController.doPrivileged(Native
Method)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
at [email protected]/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
at [email protected]/sun.nio.ch.Invoker$2.run(Invoker.java:219)
at
[email protected]/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at
[email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
[email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at [email protected]/java.lang.Thread.run(Thread.java:834)
{noformat}
{noformat}
"sshd-SshServer[46bcb190]-nio2-thread-4" Id=147 in BLOCKED on
lock=java.lang.Object@76a33827
owned by sshd-SshServer[46bcb190]-nio2-thread-3 Id=146
at
org.apache.sshd.common.session.helpers.AbstractSession.doWritePacket(AbstractSession.java:1147)
at
org.apache.sshd.common.session.helpers.AbstractSession.writePacket(AbstractSession.java:1096)
at
org.apache.sshd.common.channel.AbstractChannel.writePacket(AbstractChannel.java:794)
at
org.apache.sshd.common.channel.ChannelOutputStream.flush(ChannelOutputStream.java:221)
- locked org.apache.sshd.common.channel.ChannelOutputStream@397cee8f
at
org.jline.terminal.impl.LineDisciplineTerminal$FilteringOutputStream.flush(LineDisciplineTerminal.java:301)
at
org.jline.terminal.impl.LineDisciplineTerminal$FilteringOutputStream.write(LineDisciplineTerminal.java:296)
at [email protected]/java.io.PrintStream.write(PrintStream.java:559)
- locked java.io.PrintStream@1bd7d088
at
[email protected]/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:233)
at
[email protected]/sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:312)
at
[email protected]/sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)
- locked java.io.OutputStreamWriter@c263509
at
[email protected]/java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:184)
at [email protected]/java.io.PrintStream.write(PrintStream.java:606)
- locked java.io.PrintStream@1bd7d088
at [email protected]/java.io.PrintStream.print(PrintStream.java:745)
at [email protected]/java.io.PrintStream.append(PrintStream.java:1147)
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$611/0x00000001006b9c40.doAppend(Unknown
Source)
at
org.apache.karaf.log.core.internal.LogServiceImpl.doAppend(LogServiceImpl.java:181)
- locked org.apache.karaf.log.core.internal.LogServiceImpl@46fdf7b8
at
org.ops4j.pax.logging.spi.support.PaxAppenderProxy.doAppend(PaxAppenderProxy.java:69)
at
org.ops4j.pax.logging.log4j2.internal.bridges.PaxOsgiAppender.append(PaxOsgiAppender.java:100)
at
org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
at
org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
at
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
at
org.apache.logging.log4j.core.config.LoggerConfig.logParent(LoggerConfig.java:534)
at
org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:504)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
at
org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
at
org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:154)
at
org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog0(PaxLoggerImpl.java:354)
at
org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog(PaxLoggerImpl.java:337)
at
org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.debug(PaxLoggerImpl.java:142)
at
org.ops4j.pax.logging.internal.TrackingLogger.debug(TrackingLogger.java:115)
at org.ops4j.pax.logging.slf4j.Slf4jLogger.debug(Slf4jLogger.java:340)
at
org.apache.sshd.common.io.nio2.Nio2Session.handleCompletedWriteCycle(Nio2Session.java:397)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:372)
at
org.apache.sshd.common.io.nio2.Nio2Session$2.onCompleted(Nio2Session.java:369)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler$$Lambda$562/0x0000000100634840.run(Unknown
Source)
at [email protected]/java.security.AccessController.doPrivileged(Native
Method)
at
org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
at [email protected]/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
at [email protected]/sun.nio.ch.Invoker$2.run(Invoker.java:219)
at
[email protected]/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at
[email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
[email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at [email protected]/java.lang.Thread.run(Thread.java:834)
{noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)