hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (Resolved) (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (HBASE-5171) Potential NullPointerException while obtaining row lock
Date Tue, 24 Jan 2012 22:46:42 GMT

     [ https://issues.apache.org/jira/browse/HBASE-5171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

stack resolved HBASE-5171.

    Resolution: Duplicate

This patch was opened first but will mark as duplicate of hbase-5249 because thats where the
action is.
> Potential NullPointerException while obtaining row lock 
> --------------------------------------------------------
>                 Key: HBASE-5171
>                 URL: https://issues.apache.org/jira/browse/HBASE-5171
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.90.5
>            Reporter: Yves Langisch
> We have a table which is concurrently accessed (read/write) from many threads and we
make use of row locks. Under heavy load we regularly get NPE while obtaining row locks. An
example stack trace looks as follows:
> java.lang.NullPointerException
>       at org.apache.hadoop.hbase.regionserver.HRegionServer.convertThrowableToIOE(HRegionServer.java:986)
>       at org.apache.hadoop.hbase.regionserver.HRegionServer.lockRow(HRegionServer.java:2008)
>       at sun.reflect.GeneratedMethodAccessor20.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.HBaseRPC$Server.call(HBaseRPC.java:570)
>       at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
> Caused by: java.lang.NullPointerException
>       at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)
>       at org.apache.hadoop.hbase.regionserver.HRegionServer.addRowLock(HRegionServer.java:2018)
>       at org.apache.hadoop.hbase.regionserver.HRegionServer.lockRow(HRegionServer.java:2004)
>       ... 5 more 
> 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.
> IMHO this case should be handled somehow and must not lead to a NPE.
> -
> Yves

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


View raw message