GitHub user tillrohrmann opened a pull request: https://github.com/apache/flink/pull/4596
[FLINK-7523] Add proper resource shutdown to ResourceManager/JobManagerRunner ## What is the purpose of the change This commit waits for the completion of the shutdown of the ResourceManager before shutting down the ResourceManagerRuntimeServices. The JobManagerServices are now exclusively passed in to the JobManagerRunner which means that it is no longer responsible for shutting the JobManagerServices down. Additionally, it waits until the JobMaster has been shut down before closing the LeaderElectionService as well as the JobManagerMetricGroup. The JobManagerServices are now managed by the caller of the JobManagerRunner. This allows to reuse them across multiple JobManagerRunners. The RpcEndpoint#postStop method is now called by the UntypedActor#postStop method, which ensures that the RpcEndpoint's method is also called if only the underlying RpcService is shut down (without explicitly shutting down the RpcEndpoint). This PR is based on #4595. ## Brief change log - Shutdown `ResourceManagerRuntimeServices` as the result of the completed termination future of the `ResourceManager` - Pull out the `JobManagerServices` from the `JobManagerRunner` - Shutdown the `LeaderElectionService` and the `JobManagerMetricGroup` as the result of the completed termination future of the `JobMaster` - Call `RpcEndpoint#postStop` from `UntypedActor#postStop` instead of as the result of our custom `Shutdown` message - Remove `Shutdown` message ## Verifying this change This change is a trivial rework / code cleanup without any test coverage. ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (no) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (no) - The serializers: (no) - The runtime per-record code paths (performance sensitive): (no) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no) ## Documentation - Does this pull request introduce a new feature? (no) - If yes, how is the feature documented? (not applicable) You can merge this pull request into a Git repository by running: $ git pull https://github.com/tillrohrmann/flink fixLocalStreamENvironmentITCase Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/4596.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #4596 ---- commit 18f62f9dd013e5b0998273110cc764a379097137 Author: Till Rohrmann <trohrm...@apache.org> Date: 2017-08-26T10:40:22Z [FLINK-7526] [TaskExecutor] Filter out duplicate JobManager gained leadership messages This commit filters out duplicate JobManager gained leadership messges coming from the JobLeaderService. This avoid opening multiple connections to the JobManager which consumes resources. Moreover, this commit properly closes all JobManagerConnections in case of a shut down. commit 061ddf11d60561ee6dd0621fb30b51ac4e7c72b5 Author: Till Rohrmann <trohrm...@apache.org> Date: 2017-08-26T09:45:36Z [FLINK-7523] Add proper resource shutdown to ResourceManager/JobManagerRunner This commit waits for the completion of the shutdown of the ResourceManager before shutting down the ResourceManagerRuntimeServices. The JobManagerServices are now exclusively passed in to the JobManagerRunner which means that it is no longer responsible for shutting the JobManagerServices down. Additionally, it waits until the JobMaster has been shut down before closing the LeaderElectionService as well as the JobManagerMetricGroup. The JobManagerServices are now managed by the caller of the JobManagerRunner. This allows to reuse them across multiple JobManagerRunners. The RpcEndpoint#postStop method is now called by the UntypedActor#postStop method, which ensures that the RpcEndpoint's method is also called if only the underlying RpcService is shut down (without explicitly shutting down the RpcEndpoint). ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---