[ https://issues.apache.org/jira/browse/HBASE-5088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13175253#comment-13175253 ]
Jieshan Bean commented on HBASE-5088: ------------------------------------- Loop into the mothod of TreeMap#fixAfterDeletion(Entry<K,V> x), once the x is null(It may caused by a concurrency issue), it can't come out of that loop. At that time, CPU usage is high. That's what we saw. All the time, the thread was blocked in that method. Currently, the patch is made just replace TreeMap with ConcurrentSkipListMap as Anoop and Lars's suggestion. We're verifying the patch. @Ted, actually, the heapmap method of ConcurrentSkipListMap is different from TreeMap, it is also backed by the original thread-safe map. what do you think? > A concurrency issue on SoftValueSortedMap > ----------------------------------------- > > Key: HBASE-5088 > URL: https://issues.apache.org/jira/browse/HBASE-5088 > Project: HBase > Issue Type: Bug > Components: client > Affects Versions: 0.90.4, 0.94.0 > Reporter: Jieshan Bean > Assignee: Jieshan Bean > > SoftValueSortedMap is backed by a TreeMap. All the methods in this class are > synchronized. If we use this method to add/delete elements, it's ok. > But in HConnectionManager#getCachedLocation, it use headMap to get a view > from SoftValueSortedMap#internalMap. Once we operate > on this view map(like add/delete) in other threads, a concurrency issue may > occur. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira