[
https://issues.apache.org/jira/browse/HBASE-8380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nicolas Liochon updated HBASE-8380:
-----------------------------------
Assignee: Nicolas Liochon
> 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
>
> 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