@Joshua, your problem appears to be a deadlock, which would be unrelated to this ticket. You have a PrintStream (that holds a lock) writing to logback in one thread, and logback writing to the same PrintStream in another thread. The original problem are not the threads waiting for the lock. It's the thread that is holding the lock indefinitely. Using things like tryLock with a timeout would just cause all other threads to temporarily block and fail when trying to log - it's not a solution. I would try understand why the native method "writeBytes" is blocked. It could be a I/O issue, like full disk, writing to a pipe without a reader, etc. You can use lsof, for example, to investigate. |