[
https://issues.apache.org/jira/browse/HBASE-21592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16722975#comment-16722975
]
Zheng Hu commented on HBASE-21592:
----------------------------------
Thanks for the patch, I think we don't need to catch the IOException in the
UT, because if the NPE still happen, the throwing Exception will fail the UT.
Patch looks good, please simplify the UT.
{code}
+ try {
+ // An exists call when having throttle quota.
+ table.exists(new Get(Bytes.toBytes("abc")));
+ } catch (IOException e) {
+ // I expect this exception.
+ LOG.error("Got expected exception", e);
+ t = e;
+ }
+ assertTrue(t == null);
{code}
> quota.addGetResult(r) throw NPE
> ---------------------------------
>
> Key: HBASE-21592
> URL: https://issues.apache.org/jira/browse/HBASE-21592
> Project: HBase
> Issue Type: Bug
> Reporter: xuqinya
> Assignee: xuqinya
> Priority: Major
> Attachments: HBASE-21592.master.0001.patch,
> HBASE-21592.master.0002.patch, HBASE-21592.master.0003.patch
>
>
> Setting the RPC quota, table.exists(Get) cause quota.addGetResult(r) throw
> NPE.
> {code:java}
> set_quota TYPE => THROTTLE, NAMESPACE => 'ns1', LIMIT => '1000req/sec'
> {code}
> {code:java}
> Connection conn = ConnectionFactory.createConnection(config);
> Table htable = conn.getTable(TableName.valueOf("ns1:t1"));
> boolean exists = htable.exists(new Get(Bytes.toBytes("123"))); {code}
> log:
> java.io.IOException: java.io.IOException
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2183)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
> at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NullPointerException
> at
> org.apache.hadoop.hbase.quotas.QuotaUtil.calculateResultSize(QuotaUtil.java:282)
> at
> org.apache.hadoop.hbase.quotas.DefaultOperationQuota.addGetResult(DefaultOperationQuota.java:99)
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:1907)
> at
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32381)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2135)
> ... 4 more
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)