[ 
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

Reply via email to