[ 
https://issues.apache.org/jira/browse/HBASE-5249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13192635#comment-13192635
 ] 

stack commented on HBASE-5249:
------------------------------

Copying over Ted comment that was in hbase-5171 (resolved as a duplicate):

{code}
Zhihong Yu added a comment - 10/Jan/12 18:03
One workaround is to increase the value for "hbase.rowlock.wait.duration"
But a new exception should be introduced anyways.
{code}

Yves says up on the list:

{code}
After checking the source code I've noticed that the value which is going to be 
put into the HashMap can be null in the case where the waitForLock flag is true 
or the rowLockWaitDuration is expired (HRegion#internalObtainRowLock, line 
2111ff). The latter I think happens in our case as we have heavy load hitting 
the server.
{code}
                
> Using a stale explicit row lock in a Put triggers an NPE
> --------------------------------------------------------
>
>                 Key: HBASE-5249
>                 URL: https://issues.apache.org/jira/browse/HBASE-5249
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0
>            Reporter: stack
>            Assignee: stack
>            Priority: Minor
>             Fix For: 0.92.1
>
>
> After acquiring an explicit row lock, if one attempts to send {{Put}} after 
> the row lock has expired, an NPE is triggered in the RegionServer, instead of 
> throwing an {{UnknownRowLockException}} back to the client.
> {code}
> 2012-01-20 17:09:54,074 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)
>        at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.addRowLock(HRegionServer.java:2313)
>        at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.lockRow(HRegionServer.java:2299)
>        at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
>        at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>        at java.lang.reflect.Method.invoke(Method.java:597)
>        at 
> org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
>        at 
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1327)
> It happened only once out of thousands of RPCs that grabbed and
> released a row lock.
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to