Hbase client throws NoSuchElementException
------------------------------------------

                 Key: HBASE-3878
                 URL: https://issues.apache.org/jira/browse/HBASE-3878
             Project: HBase
          Issue Type: Bug
          Components: client
    Affects Versions: 0.90.2
            Reporter: gaojinchao
             Fix For: 0.90.4


Soft reference objects, which are cleared at the discretion of the 
garbage collector in response to memory demand. 

I used ycsb to put data and threw exception.

>>>> 
>>>>  Hbase Code:
>>>>     // Cut the cache so that we only get the part that could contain
>>>>     // regions that match our key
>>>>     SoftValueSortedMap<byte[], HRegionLocation> matchingRegions =
>>>>       tableLocations.headMap(row);
>>>> 
>>>>     // if that portion of the map is empty, then we're done. otherwise,
>>>>     // we need to examine the cached location to verify that it is
>>>>     // a match by end key as well.
>>>>     if (!matchingRegions.isEmpty()) {
>>>>       HRegionLocation possibleRegion =
>>>>         matchingRegions.get(matchingRegions.lastKey());
>>>> 
>>>>   ycsb client log:
>>>> 
>>>>   [java] begin StatusThread run
>>>>    [java] java.util.NoSuchElementException
>>>>    [java]     at java.util.TreeMap.key(TreeMap.java:1206)
>>>>    [java]     at
>> java.util.TreeMap$NavigableSubMap.lastKey(TreeMap.java:1435)
>>>>    [java]     at
>> org.apache.hadoop.hbase.util.SoftValueSortedMap.lastKey(SoftValueSort
>> edMap.java:131)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplemen
>> tation.getCachedLocation(HConnectionManager.java:841)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplemen
>> tation.locateRegionInMeta(HConnectionManager.java:664)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplemen
>> tation.locateRegion(HConnectionManager.java:590)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplemen
>> tation.processBatch(HConnectionManager.java:1114)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplemen
>> tation.processBatchOfPuts(HConnectionManager.java:1234)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:819)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:675)
>>>>    [java]     at
>> org.apache.hadoop.hbase.client.HTable.put(HTable.java:665)
>>>>    [java]     at com.yahoo.ycsb.db.HBaseClient.update(Unknown Source)
>>>>    [java]     at com.yahoo.ycsb.db.HBaseClient.insert(Unknown Source)
>>>>    [java]     at com.yahoo.ycsb.DBWrapper.insert(Unknown Source)
>>>>    [java]     at com.yahoo.ycsb.workloads.MyWorkload.doInsert(Unknown
>> Source)
>>>>    [java]     at com.yahoo.ycsb.ClientThread.run(Unknown Source)


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to