我的web应用程序(在weblogic上运行)发生故障,当我检查jstack信息时,我发现org.apache.log4j.spi.RootLogger上的大多数线程都是BLOCKED.拥有这个锁的线程也被BLOCKED并且被卡住了至少20分钟,直到我杀死进程,但它没有等待任何其他锁,这是怎么发生的?
这是jstack信息:
BLOCKED线程拥有锁<783b8910>,但不等待其他锁:
"[STUCK] ExecuteThread: '58' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=7 tid=02e45400 nid=86 lwp_id=7959740 waiting for monitor entry [61cff000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)
- locked <783b8910> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.error(Category.java:302)
Run Code Online (Sandbox Code Playgroud)
等待锁定的其他线程<783b8910>:
"[STUCK] ExecuteThread: '36' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=7 tid=02e0ea00 nid=64 lwp_id=7959717 waiting for monitor entry [62d7f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:201)
- waiting to lock <783b8910> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:388)
at org.apache.log4j.Category.error(Category.java:319)
Run Code Online (Sandbox Code Playgroud)
和
"[STUCK] ExecuteThread: '34' for queue: 'weblogic.kernel.Default (self-tuning)'" …Run Code Online (Sandbox Code Playgroud)