Have proc_mesh.stop try to cleanly exit actors #1717
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
Non-local processes that are being stopped with v1
proc_mesh.stop()go rightto SIGTERM, and don't give actors a chance to stop themselves. LocalHandle processes use
"destroy_and_wait" already.
That didn't matter a lot before, but we'd like for Actors to have a chance to run cleanups
in Drop, and in the future the
Actor::cleanuptrait function.This change asks the ProcMeshAgent to stop the actors on the proc before sending a
SIGTERM, which gives a chance for more cooperative cleanup. Note that the process still
gets SIGTERM, as "destroy_and_wait" (and by extension, the StopAll message) does not exit
the process. We make sure to
awaitthe StopAll message response, so that we don'ttry to SIGTERM actors that are already stopping.
Reviewed By: shayne-fletcher
Differential Revision: D85795859