Swap the order of terminating workers: from worker first to childs first #1092
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.
Currently when circus terminating a worker, it sends signal to worker, and then to each child process.
But according to
send_signal_child
, when sending signals to a child, psutil'sProcess.children()
is used to live query the children of the parent worker process, which is signaled death before. This is the cause that child process don't receive signal.A workaround is changing the order, and send signal to childs first.
May be a fix for #1044