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
