You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Jean-Baptiste Onofré (Jira)" <ji...@apache.org> on 2019/11/06 15:40:00 UTC
[jira] [Updated] (KARAF-6512) Dead lock in LogServiceImpl
[ https://issues.apache.org/jira/browse/KARAF-6512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Baptiste Onofré updated KARAF-6512:
----------------------------------------
Fix Version/s: 4.2.8
4.3.0
> 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
> Assignee: Jean-Baptiste Onofré
> Priority: Critical
> Fix For: 4.3.0, 4.2.8
>
>
> # 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 java.base@11.0.4/java.security.AccessController.doPrivileged(Native Method)
> at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
> at java.base@11.0.4/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
> at java.base@11.0.4/sun.nio.ch.Invoker$2.run(Invoker.java:219)
> at java.base@11.0.4/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
> at java.base@11.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base@11.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base@11.0.4/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 java.base@11.0.4/java.io.PrintStream.write(PrintStream.java:559)
> - locked java.io.PrintStream@1bd7d088
> at java.base@11.0.4/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:233)
> at java.base@11.0.4/sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:312)
> at java.base@11.0.4/sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)
> - locked java.io.OutputStreamWriter@c263509
> at java.base@11.0.4/java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:184)
> at java.base@11.0.4/java.io.PrintStream.write(PrintStream.java:606)
> - locked java.io.PrintStream@1bd7d088
> at java.base@11.0.4/java.io.PrintStream.print(PrintStream.java:745)
> at java.base@11.0.4/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 java.base@11.0.4/java.security.AccessController.doPrivileged(Native Method)
> at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
> at java.base@11.0.4/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
> at java.base@11.0.4/sun.nio.ch.Invoker$2.run(Invoker.java:219)
> at java.base@11.0.4/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
> at java.base@11.0.4/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base@11.0.4/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base@11.0.4/java.lang.Thread.run(Thread.java:834)
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)