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

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

We can change the timeout value but for the interrupt call I think it is a bit 
hard to implement as we use sync rpc calls, and we also need to take care of 
the timing on when to interrupt the call during the server crash processing. 
Add a guard in the remoteCallFailed implementation itself will be more suitable 
here I think.

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

Reply via email to