Nicolas Liochon created HBASE-8380:
--------------------------------------
Summary: 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
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