I'd say file an issue with the info that is in this thread. We've not seen this before, to our knowledge, but maybe there is something to it but as is, the thread dump is not telling a clean story.
"IPC Server handler 9 on 60020" waiting on "IPC Server handler 7 on 60020" is fine but looking at code, I can't see how "regionserver60020.cacheFlusher" would be in on the mix. I see how it takes out the reentrant lock to add a compaction request to a queue. In your stack trace, it looks like its the Log.debug String construction that some how ends up wanting to call reclaimMemStoreMemory but can't get in because of "IPC Server handler 7 on 60020". Thanks for digging in on this, St.Ack 2011/4/28 Zhoushuaifeng <[email protected]>: > Yes,profiler is enabled, may be this is the problem. > > Zhou Shuaifeng(Frank) > > > -----邮件原件----- > 发件人: [email protected] [mailto:[email protected]] 代表 Stack > 发送时间: 2011年4月29日 12:38 > 收件人: [email protected] > 抄送: Yanlijun; Chenjian > 主题: Re: found one deadlock on hbase? > > Hmm. > > The profiler is enabled when you see this? > > Something is way off with the last of the threads showing in your thread dump: > > > "regionserver60020.cacheFlusher": > at java.util.ResourceBundle.endLoading(ResourceBundle.java:1506) > - waiting to lock <0x00007fe7cbacbd48> (a > org.apache.hadoop.hbase.regionserver.MemStoreFlusher) > at java.util.ResourceBundle.findBundle(ResourceBundle.java:1379) > at java.util.ResourceBundle.findBundle(ResourceBundle.java:1292) > at > java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1234) > at java.util.ResourceBundle.getBundle(ResourceBundle.java:832) > .... > > > How is it that we are trying to get into a synchronized hbase method, > MemStoreFlusher, in the depths of an i18n call; we're trying to append > a locale-appropriate date to a String. > > Something is way off? > > St.Ack > >
