[
https://issues.apache.org/jira/browse/HBASE-13694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14548296#comment-14548296
]
Esteban Gutierrez commented on HBASE-13694:
-------------------------------------------
[~stack]: yeah I found a place where that can happen, I have a new patch were
basically we decrement callQueueSize immediately if the call is successful but
we left the decrement until the finally clause if there was an exception.
[~lhofhansl]: Not in 0.94 since we decrement callQueueSize after the call is
made but before sending the response:
{code}
CurCall.set(null);
callQueueSize.add(call.getSize() * -1);
// Set the response for undelayed calls and delayed calls with
// undelayed responses.
if (!call.isDelayed() || !call.isReturnValueDelayed()) {
call.setResponse(value,
errorClass == null? Status.SUCCESS: Status.ERROR,
errorClass, error);
}
call.sendResponseIfReady();
status.markComplete("Sent response");
{code}
However that still have the old issue that any exception before decrementing
the queue size will be miscount.
> CallQueueSize is incorrectly decremented until the response is sent
> -------------------------------------------------------------------
>
> Key: HBASE-13694
> URL: https://issues.apache.org/jira/browse/HBASE-13694
> Project: HBase
> Issue Type: Bug
> Components: master, regionserver, rpc
> Affects Versions: 2.0.0, 1.1.0, 0.98.12, 1.0.2, 1.2.0
> Reporter: Esteban Gutierrez
> Assignee: Esteban Gutierrez
> Attachments:
> 0001-HBASE-13694-CallQueueSize-is-incorrectly-decremented.patch
>
>
> We should decrement the CallQueueSize as soon as we no longer need the call
> around, e.g. after {{RpcServer.CurCall.set(null)}} otherwise we will be only
> pushing back other client requests while we send the response back to the
> client that originated the call.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)