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

Nicolas Liochon updated HBASE-8380:
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 0.95.1
                   0.98.0
     Hadoop Flags: Reviewed
           Status: Resolved  (was: Patch Available)
    
> NPE in HBaseClient$Connection.readResponse
> ------------------------------------------
>
>                 Key: HBASE-8380
>                 URL: https://issues.apache.org/jira/browse/HBASE-8380
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 0.95.0
>         Environment: aws, real cluster, 3 nodes
>            Reporter: Nicolas Liochon
>            Assignee: Nicolas Liochon
>             Fix For: 0.98.0, 0.95.1
>
>         Attachments: 8380.v1.patch
>
>
> Stack is:
> {noformat}
> 2013-04-19 09:22:45,991 WARN  [IPC Client (682317035) connection to 
> ip-10-6-131-32.ec2.internal/10.6.131.32:60020 from root] ipc.HBaseClient 
> (HBaseClient.java:run(664)) - IPC Client (682317035) connection to 
> ip-10-6-131-32.ec2.internal/10.6.131.32:60020 from root: unexpected exception 
> receiving call responses
> java.lang.RuntimeException: java.lang.NullPointerException
>       at 
> org.apache.hadoop.hbase.ipc.HBaseClient$Connection.readResponse(HBaseClient.java:1017)
>       at 
> org.apache.hadoop.hbase.ipc.HBaseClient$Connection.run(HBaseClient.java:661)
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.hadoop.hbase.ipc.HBaseClient$Connection.readResponse(HBaseClient.java:1013)
>       ... 1 more
>  1197 sec: 3411081 operations; 324,27 current ops/sec; [INSERT 
> AverageLatency(us)=29332,6] 
> {noformat}
> Code:
> {code}
>     protected void readResponse() {
>       if (shouldCloseConnection.get()) return;
>       touch();
>       try {
>         // See HBaseServer.Call.setResponse for where we write out the 
> response.
>         // Total size of the response.  Unused.  But have to read it in 
> anyways.
>         /*int totalSize =*/ in.readInt();
>         // Read the header
>         ResponseHeader responseHeader = ResponseHeader.parseDelimitedFrom(in);
>         int id = responseHeader.getCallId();
>         if (LOG.isDebugEnabled()) {
>           LOG.debug(getName() + ": got response header " +
>             TextFormat.shortDebugString(responseHeader));
>         }
>         Call call = calls.get(id);
>         if (responseHeader.hasException()) {
>           ExceptionResponse exceptionResponse = responseHeader.getException();
>           RemoteException re = createRemoteException(exceptionResponse);
>           if (isFatalConnectionException(exceptionResponse)) {
>             markClosed(re);
>           } else {
>             if (call != null) call.setException(re);
>           }
>         } else {
>           Message rpcResponseType;
>           try {
>             // TODO: Why pb engine pollution in here in this class?  FIX.
>             rpcResponseType =
>               ProtobufRpcClientEngine.Invoker.getReturnProtoType(
>                 reflectionCache.getMethod(remoteId.getProtocol(), 
> call.method.getName()));  <=========== NPE, because call is null
>           } catch (Exception e) {
>             throw new RuntimeException(e); //local exception
>           }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to