You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (JIRA)" <ji...@apache.org> on 2018/06/28 06:51:00 UTC

[jira] [Commented] (HBASE-20802) Add an interruptCall to RemoteProcedureDispatch

    [ https://issues.apache.org/jira/browse/HBASE-20802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16525990#comment-16525990 ] 

Duo Zhang commented on HBASE-20802:
-----------------------------------

I think 3 minutes timeout is too long? For executeProcedures, it is async so should not take too much time. It will schedule the actual task into a thread pool and then return, so just set a small timeout is fine?

> Add an interruptCall to RemoteProcedureDispatch
> -----------------------------------------------
>
>                 Key: HBASE-20802
>                 URL: https://issues.apache.org/jira/browse/HBASE-20802
>             Project: HBase
>          Issue Type: Sub-task
>          Components: amv2
>            Reporter: stack
>            Priority: Major
>
> Follow-on from the parent. In summary, RPC's to zombie servers can get stuck/hang. We'll notice the server has gone non-responsive after a while and will effect repair but the RPCs will remain up until they go to their timeout (default 3minutes).
> This issue is about adding a means of interrupting an ongoing RPC. ServerCrashProcedure does cleanup of any ongoing, unsatisfied assigns/unassigns. As part of this cleanup, it could interrupt any outstanding RPCs.
> We'd add an interruptCall to the below interface in RemoteProcedureDispatch
> {code}
>   public interface RemoteProcedure<TEnv, TRemote> {
>     RemoteOperation remoteCallBuild(TEnv env, TRemote remote);
>     void remoteCallCompleted(TEnv env, TRemote remote, RemoteOperation response);
>     void remoteCallFailed(TEnv env, TRemote remote, IOException exception);
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)