[ https://issues.apache.org/jira/browse/HBASE-6280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402074#comment-13402074 ]
Jieshan Bean commented on HBASE-6280: ------------------------------------- Good finding, qiujaiwei. It seems a concurrency issue. We can see from the method of HConnectionManager#processExecs: {noformat} Future<R> future = pool.submit( new Callable<R>() { public R call() throws Exception { T instance = (T)Proxy.newProxyInstance(conf.getClassLoader(), new Class[]{protocol}, invoker); R result = callable.call(instance); byte[] region = invoker.getRegionName(); if (callback != null) { callback.update(region, r, result); } return result; } }); {noformat} I think we should use a concurrent map instead of using TreeMap. > why using treeMap at default implement with class Batch.Callback > ----------------------------------------------------------------- > > Key: HBASE-6280 > URL: https://issues.apache.org/jira/browse/HBASE-6280 > Project: HBase > Issue Type: Bug > Components: coprocessors > Affects Versions: 0.92.0 > Environment: centos 6.2 hbase 0.92.0 > Reporter: qiujaiwei > > public <T extends CoprocessorProtocol, R> Map<byte[],R> coprocessorExec( > Class<T> protocol, byte[] startKey, byte[] endKey, > Batch.Call<T,R> callable) > throws IOException, Throwable { > final Map<byte[],R> results = new TreeMap<byte[],R>( > Bytes.BYTES_COMPARATOR); > coprocessorExec(protocol, startKey, endKey, callable, > new Batch.Callback<R>(){ > public void update(byte[] region, byte[] row, R value) { > results.put(region, value); > } > }); > return results; > } > when mulit region call the Batch.Callback ,the treemap should lockup. > we meet this situation after we run 3 month. -- 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