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

MinWang commented on FLINK-15693:
---------------------------------

[~trohrmann] Thanks for the quick reply. I think it only needs to simply remove 
overriden {color:#FF0000}TerminatingState#isRunning{color} just as below. The 
actor will no longer accept rpc requests. What do you think ?
{code:java}
enum TerminatingState implements State {
   TERMINATING;

   @Override
   public State terminate(AkkaRpcActor<?> akkaRpcActor) {
      return TERMINATING;
   }

   @Override
   public boolean isRunning() {
      return true;
   }
}
{code}

> Stop receiving incoming RPC messages when RpcEndpoint is closing
> ----------------------------------------------------------------
>
>                 Key: FLINK-15693
>                 URL: https://issues.apache.org/jira/browse/FLINK-15693
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Coordination
>    Affects Versions: 1.9.1, 1.10.0
>            Reporter: Till Rohrmann
>            Priority: Major
>             Fix For: 1.11.0
>
>
> When calling {{RpcEndpoint#closeAsync()}}, the system triggers 
> {{RpcEndpoint#onStop}} and transitions the endpoint into the 
> {{TerminatingState}}. In order to allow asynchronous clean up operations, the 
> main thread executor is not shut down immediately. As a side effect, the 
> {{RpcEndpoint}} still accepts incoming RPC messages from other components. 
> I think it would be cleaner to no longer accept incoming RPC messages once we 
> are in the {{TerminatingState}}. That way we would not worry about the 
> internal state of the {{RpcEndpoint}} when processing RPC messages (similar 
> to 
> [here|https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/taskexecutor/TaskExecutor.java#L952]).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to