[ 
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)

Reply via email to