I have one problem with performance in production because of, as I think, blocked threads .
When I got thread dumps from production environment I was surprised that about 50% of thread are in status:
-- Blocked trying to get lock: ch/qos/logback/classic/sift/SiftingAppender@0x1111fe3e8[unlocked]
At the same time, as you can see, SiftingAppender is 'unlocked'.
I have no idea why it's happened.
If we deep into logback sources we will find there a synchronized method which is the 'thin' place I think:
ch.qos.logback.core.AppenderBase.doAppend(E)
public synchronized void doAppend(E eventObject) {
// WARNING: The guard check MUST be the first statement in the
// doAppend() method.
// prevent re-entry.
if (guard) {
return;
}
...
}
We use weblogic v.10.3.5.0
slf4j.version - 1.7.5
logback.version - 1.0.13
Has anybody ideas why it's happened and how to avoid this problem?
It may be not logback's problem. I now trying to find resolution only.