On Fri, Dec 16, 2011 at 8:20 AM, Yves Langisch <[email protected]> wrote:
> 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?
>

Looking at the code on regionserver side,
http://svn.apache.org/viewvc/hbase/tags/0.90.4/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?view=markup,
down around line 1994, its unlikely the region is null since we should
throw NotServingRegionException if can't find region (and we check for
null region name a few lines up) so maybe its something in the way we
do obtainRowLock on line 1995?

Any chance of your instrumenting the regionserver?  Adding a bit of
debugging and deploying the debugging regionserver?

My guess is we haven't seen this before because not many use rowlocks
(rowlocks if long-lived and lots of contending clients could freeze
you out of the server; each client blocked waiting on rowlock to clear
occupies a handler of which there are a bounded number).

St.Ack

Reply via email to