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