[
https://issues.apache.org/jira/browse/HBASE-20972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574230#comment-16574230
]
Guanghao Zhang commented on HBASE-20972:
----------------------------------------
{code:java}
if (!this.rpcServer.scheduler.dispatch(new CallRunner(this.rpcServer,
call))) {
this.rpcServer.callQueueSizeInBytes.add(-1 * call.getSize());
this.rpcServer.metrics.exception(RpcServer.CALL_QUEUE_TOO_BIG_EXCEPTION);
call.setResponse(null, null, RpcServer.CALL_QUEUE_TOO_BIG_EXCEPTION,
"Call queue is full on " + this.rpcServer.server.getServerName() +
", too many items queued ?");
call.sendResponseIfReady();
}
{code}
This is not a bug now. It already reduce the call size when can't dispatch the
call.
> Fix call queue buffer size leaking bug
> --------------------------------------
>
> Key: HBASE-20972
> URL: https://issues.apache.org/jira/browse/HBASE-20972
> Project: HBase
> Issue Type: Bug
> Components: IPC/RPC
> Affects Versions: 2.1.0, 2.0.0, 2.2.0
> Reporter: Xiaolin Ha
> Assignee: Xiaolin Ha
> Priority: Major
> Attachments: HBASE-20972.branch-2.0.001.patch,
> HBASE-20972.branch-2.0.002.patch, HBASE-20972.master.001.patch,
> HBASE-20972.master.002.patch
>
>
> Call queue size is the currently queued and running Calls bytes size. It gets
> incremented after we parse a call and before we add it to the queue of calls
> for the scheduler to use. It get decremented after we have 'run' the Call.
> When setting up a call, total size of it is added. So when a new call can not
> be dispatched by BlockingQueue full, the call queue size should be
> decremented. We shouldn't add size of rejected calls to the call queue size.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)