hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Esteban Gutierrez (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13694) CallQueueSize is incorrectly decremented until the response is sent
Date Mon, 18 May 2015 17:08:03 GMT

    [ 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:
      	  callQueueSize.add(call.getSize() * -1);
          // Set the response for undelayed calls and delayed calls with
          // undelayed responses.
	  if (!call.isDelayed() || !call.isReturnValueDelayed()) {
              errorClass == null? Status.SUCCESS: Status.ERROR,
                errorClass, error);
	  status.markComplete("Sent response");

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

View raw message