Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.99.0
    • Component/s: IPC/RPC
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      You seen this one Jimmy Xiang?

      Here is the exception:

      2014-03-27 11:38:16,649 ERROR [RpcServer.handler=5,port=16020] ipc.RpcServer: Unexpected throwable object
      java.lang.NullPointerException
              at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:1577)
              at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:29493)
              at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2002)
              at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:98)
              at org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.consumerLoop(SimpleRpcScheduler.java:162)
              at org.apache.hadoop.hbase.ipc.SimpleRpcScheduler.access$000(SimpleRpcScheduler.java:38)
              at org.apache.hadoop.hbase.ipc.SimpleRpcScheduler$1.run(SimpleRpcScheduler.java:110)
              at java.lang.Thread.run(Thread.java:744)
      

      Code looks like this on trunk:

      1576     } finally {
      1577       regionServer.metricsRegionServer.updateGet(
      1578         EnvironmentEdgeManager.currentTimeMillis() - before);
      1579     }
      1580   }
      

        Activity

        Hide
        Enis Soztutar added a comment -

        Closing this issue after 0.99.0 release.

        Show
        Enis Soztutar added a comment - Closing this issue after 0.99.0 release.
        Hide
        Hudson added a comment -

        SUCCESS: Integrated in HBase-TRUNK #5046 (See https://builds.apache.org/job/HBase-TRUNK/5046/)
        HBASE-10853 NPE in RSRpcServices.get on trunk (stack: rev 1582553)

        • /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
        Show
        Hudson added a comment - SUCCESS: Integrated in HBase-TRUNK #5046 (See https://builds.apache.org/job/HBase-TRUNK/5046/ ) HBASE-10853 NPE in RSRpcServices.get on trunk (stack: rev 1582553) /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
        Hide
        stack added a comment -

        ok.

        Let me apply this for now.

        Show
        stack added a comment - ok. Let me apply this for now.
        Hide
        Jimmy Xiang added a comment -

        That means checkOpen should throw ServiceException instead of IOException. Otherwise, the code may look messy, considering converting IOE to SE. The current patch looks fine to me too.

        Show
        Jimmy Xiang added a comment - That means checkOpen should throw ServiceException instead of IOException. Otherwise, the code may look messy, considering converting IOE to SE. The current patch looks fine to me too.
        Hide
        stack added a comment -

        Jimmy Xiang Then I think the patch is wrong Jimmy. Instead I should move the checkOpen outside of the try/finally?

        Show
        stack added a comment - Jimmy Xiang Then I think the patch is wrong Jimmy. Instead I should move the checkOpen outside of the try/finally?
        Hide
        Jimmy Xiang added a comment -

        Before reporting to master, RS throws ServerNotRunningYetException for all RPC calls. So it is not handling gets, right?

        Show
        Jimmy Xiang added a comment - Before reporting to master, RS throws ServerNotRunningYetException for all RPC calls. So it is not handling gets, right?
        Hide
        stack added a comment -

        Jimmy Xiang Should we be handling gets before we report to master?

        Show
        stack added a comment - Jimmy Xiang Should we be handling gets before we report to master?
        Hide
        Jimmy Xiang added a comment -

        I think it's the right approach. This should happen before the RS reports to the master.

        Show
        Jimmy Xiang added a comment - I think it's the right approach. This should happen before the RS reports to the master.
        Hide
        Jimmy Xiang added a comment -

        +1

        Show
        Jimmy Xiang added a comment - +1
        Hide
        stack added a comment -

        Is this the right approach Jimmy Xiang? It looks like the metrics service comes on board later on in the startup process.... we throw NPEs just during startup.

        Show
        stack added a comment - Is this the right approach Jimmy Xiang ? It looks like the metrics service comes on board later on in the startup process.... we throw NPEs just during startup.
        Hide
        stack added a comment -

        regionServer.metricsRegionServer is null in the below:

        1570       } else  if (r != null) {
        1571         ClientProtos.Result pbr = ProtobufUtil.toResult(r);
        1572         builder.setResult(pbr);
        1573       }
        1574       return builder.build();
        1575     } catch (IOException ie) {
        1576       throw new ServiceException(ie);
        1577     } finally {
        1578       LOG.info("regionServer=" + regionServer + " " + regionServer.metricsRegionServer);
        1579       regionServer.metricsRegionServer.updateGet(
        1580         EnvironmentEdgeManager.currentTimeMillis() - before);
        1581     }
        1582   }
        
        Show
        stack added a comment - regionServer.metricsRegionServer is null in the below: 1570 } else if (r != null ) { 1571 ClientProtos.Result pbr = ProtobufUtil.toResult(r); 1572 builder.setResult(pbr); 1573 } 1574 return builder.build(); 1575 } catch (IOException ie) { 1576 throw new ServiceException(ie); 1577 } finally { 1578 LOG.info( "regionServer=" + regionServer + " " + regionServer.metricsRegionServer); 1579 regionServer.metricsRegionServer.updateGet( 1580 EnvironmentEdgeManager.currentTimeMillis() - before); 1581 } 1582 }

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development