HBase
  1. HBase
  2. HBASE-5249

Using a stale explicit row lock in a Put triggers an NPE

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 0.92.0
    • Fix Version/s: 0.92.3
    • Component/s: regionserver
    • Labels:
      None

      Description

      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.

      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.
      

        Issue Links

          Activity

            People

            • Assignee:
              stack
              Reporter:
              stack
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:

                Development