Change proc mesh stop to exit the process instead of SIGTERM #1900
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:
Instead of relying on sending SIGTERM, give the process a chance to clean itself up
gracefully.
Have the StopAll message on ProcMeshAgent call exit(0) if it is able to clean up all
actors successfully, or exit(1) if there's an issue.
Then, instead of awaiting a reply from the actor, use the
wait()functionality ofProcHandle to wait for it to exit. This way we don't get the SIGTERM stack dump,
and gives the user process a chance to run atexit handlers such as static C++
object destructors (SIGTERM bypasses atexit handlers).
This also means nothing uses GetAllRankStatus anymore, and we can delete it!
We may also want to rename StopAll to StopSelf or something that implies it'll
stop itself as well.
Reviewed By: shayne-fletcher
Differential Revision: D87108568