[ https://issues.apache.org/jira/browse/HBASE-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13221524#comment-13221524 ]
Davey Yan commented on HBASE-4890: ---------------------------------- I got the same error when I committed data with a multi-threads client. {noformat} 12/03/02 21:52:27 WARN client.HConnectionManager$HConnectionImplementation: Failed all from region=File,76cd9bbd-8431-4639-8440-b2bac89488f7\x00/\x005f87b6e0-3ce6-446b-a870-7c99b7e0f818,1330625239513.f2dfbf8673f58f5e8c620a94638bf736., hostname=ubuntu6403, port=60020 java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NullPointerException at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) at java.util.concurrent.FutureTask.get(FutureTask.java:83) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1557) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1409) at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:900) at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:777) at org.apache.hadoop.hbase.client.HTable.put(HTable.java:752) at org.apache.hadoop.hbase.client.HTablePool$PooledHTable.put(HTablePool.java:397) at com.xxx.file.service.HBaseFileManager.save(Unknown Source) at com.xxx.file.service.HBaseFileManager.createFileMessage(Unknown Source) at com.xxx.perf.PerformanceEvaluation$1.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.RuntimeException: java.lang.NullPointerException at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithoutRetries(HConnectionManager.java:1371) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1383) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1381) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) ... 3 more Caused by: java.lang.NullPointerException at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:158) at $Proxy19.multi(Unknown Source) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1386) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1384) at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithoutRetries(HConnectionManager.java:1365) ... 7 more {noformat} This multi-threads client puts data into table 'File'. And there are three secondary-index tables (FileAIndex, FileBIndex, FileCIndex) being filled by a coprocessor of table 'File'. The coprocessors outlined HERE: {code:title=FileCoprocessor.java} public class FileCoprocessor extends BaseRegionObserver { HTablePool hTablePool; @Override public void start(CoprocessorEnvironment e) throws IOException { super.start(e); hTablePool = new HTablePool(e.getConfiguration(), 100); } @Override public void stop(CoprocessorEnvironment e) throws IOException { hTablePool.close(); super.stop(e); } @Override public void prePut(...) { hTablePool.getTable("FileAIndex").put(...); hTablePool.getTable("FileBIndex").put(...); hTablePool.getTable("FileCIndex").put(...); } } {code} When I disable the coprocessor, I cannot reproduced the error until now, but I am not sure. Environment & Version: HBase 0.92.0 Hadoop 1.0.0 java version "1.6.0_30" Java(TM) SE Runtime Environment (build 1.6.0_30-b12) Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode) Ubuntu Server 10.04 LTS 64-bit 1 master + 4 regionserver > fix possible NPE in HConnectionManager > -------------------------------------- > > Key: HBASE-4890 > URL: https://issues.apache.org/jira/browse/HBASE-4890 > Project: HBase > Issue Type: Bug > Affects Versions: 0.92.0 > Reporter: Jonathan Hsieh > Priority: Blocker > Fix For: 0.92.1 > > > I was running YCSB against a 0.92 branch and encountered this error message: > {code} > 11/11/29 08:47:16 WARN client.HConnectionManager$HConnectionImplementation: > Failed all from > region=usertable,user3917479014967760871,1322555655231.f78d161e5724495a9723bcd972f97f41., > hostname=c0316.hal.cloudera.com, port=57020 > java.util.concurrent.ExecutionException: java.lang.RuntimeException: > java.lang.NullPointerException > at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > at java.util.concurrent.FutureTask.get(FutureTask.java:83) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1501) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1353) > at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:898) > at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:775) > at org.apache.hadoop.hbase.client.HTable.put(HTable.java:750) > at com.yahoo.ycsb.db.HBaseClient.update(Unknown Source) > at com.yahoo.ycsb.DBWrapper.update(Unknown Source) > at com.yahoo.ycsb.workloads.CoreWorkload.doTransactionUpdate(Unknown > Source) > at com.yahoo.ycsb.workloads.CoreWorkload.doTransaction(Unknown Source) > at com.yahoo.ycsb.ClientThread.run(Unknown Source) > Caused by: java.lang.RuntimeException: java.lang.NullPointerException > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithoutRetries(HConnectionManager.java:1315) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1327) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3.call(HConnectionManager.java:1325) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.NullPointerException > at > org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:158) > at $Proxy4.multi(Unknown Source) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1330) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$3$1.call(HConnectionManager.java:1328) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getRegionServerWithoutRetries(HConnectionManager.java:1309) > ... 7 more > {code} > It looks like the NPE is caused by server being null in the MultiRespone > call() method. > {code} > public MultiResponse call() throws IOException { > return getRegionServerWithoutRetries( > new ServerCallable<MultiResponse>(connection, tableName, null) { > public MultiResponse call() throws IOException { > return server.multi(multi); > } > @Override > public void connect(boolean reload) throws IOException { > server = > connection.getHRegionConnection(loc.getHostname(), > loc.getPort()); > } > } > ); > {code} -- 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