[
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