I'm using the async hbase client (1.0) and there is no way to choose a lockId on my own:
<snippet>
return database.client().lockRow(
new RowLockRequest(TableManager.ID_TABLE_NAME,
MAXID_ROW)).join();
</snippet>
Any ideas what else could be wrong here?
Yves
On Dec 14, 2011, at 7:10 AM, Stack wrote:
> On Mon, Dec 12, 2011 at 11:52 PM, Yves Langisch <[email protected]> wrote:
>> Hi,
>>
>> from time to time I get a NPE on my regionserver. Apparently it's occurring
>> while obtaining a row lock:
>>
>> ---
>> 2011-12-13 02:00:19,582 DEBUG
>> org.apache.hadoop.hbase.io.hfile.LruBlockCache: Block cache LRU eviction
>> completed; freed=39.59 MB, total=296.26 MB, single=164.82 MB, multi=167.62
>> MB, memory=42.16 KB
>> 2011-12-13 02:00:20,365 ERROR
>> org.apache.hadoop.hbase.regionserver.HRegionServer: Error obtaining row lock
>> (fsOk: true)
>> java.lang.NullPointerException
>> at
>> java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)
>
> Any chance you are passing a null lockid Yves?
>
> See below:
>
> 2005 protected long addRowLock(Integer r, HRegion region)
> 2006 throws LeaseStillHeldException {
> 2007 long lockId = -1L;
> 2008 lockId = rand.nextLong();
> 2009 String lockName = String.valueOf(lockId);
> 2010 rowlocks.put(lockName, r);
> 2011 this.leases.createLease(lockName, new
> RowLockListener(lockName, region));
> 2012 return lockId;
> 2013 }
>
>
> St.Ack
>
smime.p7s
Description: S/MIME cryptographic signature
