[ https://issues.apache.org/jira/browse/HBASE-6184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13483122#comment-13483122 ]
binlijin commented on HBASE-6184: --------------------------------- This can be happened when region split. 0.94.x version: write memstore, write hlog, update mvcc. Client: {code} metaTable = new HTable(configuration, HConstants.META_TABLE_NAME); Result startRowResult = metaTable.getRowOrBefore(searchRow, HConstants.CATALOG_FAMILY); if (startRowResult == null) { throw new TableNotFoundException("Cannot find row in .META. for table: " + Bytes.toString(tableName) + ", row=" + Bytes.toStringBinary(searchRow)); } byte[] value = startRowResult.getValue(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER); if (value == null || value.length == 0) { throw new IOException("HRegionInfo was null or empty in Meta for " + Bytes.toString(tableName) + ", row=" + Bytes.toStringBinary(searchRow)); } {code} Server : HRegion.getClosestRowBefore {code} Store store = getStore(family); // get the closest key. (HStore.getRowKeyAtOrBefore can return null) KeyValue key = store.getRowKeyAtOrBefore(row); Result result = null; if (key != null) { Get get = new Get(key.getRow()); get.addFamily(family); result = get(get, null); } return result; {code} store.getRowKeyAtOrBefore(row); doesn't consider the readPoint, but the get will, so some value doesn't have commit, getRowKeyAtOrBefore see it, but get will ignore it, so there is possiable that will return null result. > HRegionInfo was null or empty in Meta > -------------------------------------- > > Key: HBASE-6184 > URL: https://issues.apache.org/jira/browse/HBASE-6184 > Project: HBase > Issue Type: Bug > Components: Client, io > Affects Versions: 0.94.0 > Reporter: jiafeng.zhang > Fix For: 0.94.3 > > Attachments: HBASE-6184.patch > > > insert data > hadoop-0.23.2 + hbase-0.94.0 > 2012-06-07 13:09:38,573 WARN > [org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation] > Encountered problems when prefetch META table: > java.io.IOException: HRegionInfo was null or empty in Meta for hbase_one_col, > row=hbase_one_col,09115303780247449149,99999999999999 > at > org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:160) > at > org.apache.hadoop.hbase.client.MetaScanner.access$000(MetaScanner.java:48) > at > org.apache.hadoop.hbase.client.MetaScanner$1.connect(MetaScanner.java:126) > at > org.apache.hadoop.hbase.client.MetaScanner$1.connect(MetaScanner.java:123) > at > org.apache.hadoop.hbase.client.HConnectionManager.execute(HConnectionManager.java:359) > at > org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:123) > at > org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:99) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.prefetchRegionCache(HConnectionManager.java:894) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:948) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:836) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchCallback(HConnectionManager.java:1482) > at > org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1367) > at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:945) > at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:801) > at org.apache.hadoop.hbase.client.HTable.put(HTable.java:776) > at > org.apache.hadoop.hbase.client.HTablePool$PooledHTable.put(HTablePool.java:397) > at com.dinglicom.hbase.HbaseImport.insertData(HbaseImport.java:177) > at com.dinglicom.hbase.HbaseImport.run(HbaseImport.java:210) > at java.lang.Thread.run(Thread.java:662) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira