为嘛死锁无处不在啊?出问题的这个进程是做后台计算的,三十个左右的NodeThread,基本上在执行相同的http请求时,依赖的服务没有及时响应,等待一段时间后超时,于是线程们开始写日志。基本上等于三十个线程同时开始记日志,要求获取aorg.apache.log4j.spi.RootCategory 对象的锁。多线程环境下,真是啥都不牢靠。
众网友反映这个问题在log4j 1.2*版的古老bug。至今还没解决... apache说1.3是个不连续的版本,2.0是实验性质的版本,唉,不靠谱。
还有同学说有些死锁是有些应用层日志api调用得有问题,不是人log4j的问题,那同学代码确实写的很bt,但是和我碰到的问题不是一个问题,就不深入讨论了。 http://mail-archives.apache.org/mod_mbox/logging-log4j-user/200810.mbox/%[email protected]%3E
-----------------------------------------------------------------------------------------------------------------------------------------------------------
有stack有真相。
一个线程
"Thread-2174"