Issue Type: Bug Bug
Affects Versions: 1.0.0
Assignee: Logback dev list
Components: appender
Created: 22/May/12 1:43 PM
Description: The issue is weird and may be a special case. However, I wonder if anything can be implemented in Logback to detect and workaround such issues.

>From https://issues.apache.org/jira/browse/SSHD-152:

I'm not really sure what I did but I think I somehow managed to deadlock my system using SSHD in combination with Logback console appender.

Thread 1
{noformat}
Thread [Thread-21] (Suspended)
owns: ChannelOutputStream (id=481)
owns: ConsoleOutputStream (id=482)
owns: PrintStream (id=483)
owns: Object (id=202)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [NioProcessor-2] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
waited by: Thread [...] (Suspended)
owns: OutputStreamWriter (id=484)
waiting for: Window (id=485)
Object.wait(long) line: not available [native method]
Window(Object).wait() line: 503
Window.waitForSpace() line: 146
ChannelOutputStream.flush() line: 104
ConsoleOutputStream.flush() line: 97
ConsoleOutputStream.write(int) line: 83
ConsoleOutputStream(OutputStream).write(byte[], int, int) line: 116
PrintStream.write(byte[], int, int) line: 480
PrintStream(FilterOutputStream).write(byte[]) line: 97
ThreadPrintStream.write(byte[]) line: 245
ConsoleTarget$1.write(byte[]) line: 36
PatternLayoutEncoder(LayoutWrappingEncoder<E>).doEncode(E) line: 103
ConsoleAppender<E>(OutputStreamAppender<E>).writeOut(E) line: 193
ConsoleAppender<E>(OutputStreamAppender<E>).subAppend(E) line: 217
ConsoleAppender<E>(OutputStreamAppender<E>).append(E) line: 108
ConsoleAppender<E>(UnsynchronizedAppenderBase<E>).doAppend(E) line: 88
AppenderAttachableImpl<E>.appendLoopOnAppenders(E) line: 64
Logger.appendLoopOnAppenders(ILoggingEvent) line: 285
Logger.callAppenders(ILoggingEvent) line: 272
Logger.buildLoggingEventAndAppend(String, Marker, Level, String, Object[], Throwable) line: 473
Logger.filterAndLog_2(String, Marker, Level, String, Object, Object, Throwable) line: 464
Logger.debug(String, Object, Object) line: 542
ChannelOutputStream.flush() line: 119
...
{noformat}

Thread 2
{noformat}

Thread [NioProcessor-2] (Suspended)
owns: Object (id=150)
waiting for: Object (id=202)
owned by: Thread [Thread-21] (Suspended)
waiting for: Window (id=485)
ConsoleAppender<E>(OutputStreamAppender<E>).subAppend(E) line: 217
ConsoleAppender<E>(OutputStreamAppender<E>).append(E) line: 108
ConsoleAppender<E>(UnsynchronizedAppenderBase<E>).doAppend(E) line: 88
AppenderAttachableImpl<E>.appendLoopOnAppenders(E) line: 64
Logger.appendLoopOnAppenders(ILoggingEvent) line: 285
Logger.callAppenders(ILoggingEvent) line: 272
Logger.buildLoggingEventAndAppend(String, Marker, Level, String, Object[], Throwable) line: 473
Logger.filterAndLog_1(String, Marker, Level, String, Object, Throwable) line: 445
Logger.debug(String, Object) line: 538
ServerSession.handleMessage(Buffer) line: 119
...
{noformat}
Project: logback-classic
Priority: Major Major
Reporter: Gunnar Wagenknecht
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira