Send QUIT to worker before dying #14913
Merged
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
Fix deadlock scenario where dispatcher child process stuck in reading from queue loop after dispatcher parent process decided to quit
reproduce instruction
symptoms
run
gdb python -p <pid of dispatcher main process>
withpy-bt
see that dispatcher is stuck at waiting for child process to terminate
run
gdb python -p <dispatcher child process with job associated> with
py-bt`see the dispatcher child process is in the main waiting loop reading from queue
sending quit to all worker queue before raising exception will signal workers to quit
ISSUE TYPE
COMPONENT NAME
AWX VERSION
ADDITIONAL INFORMATION