-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bisect: deadlock with updating ground truth in auto mode #229
Comments
mikebentley15
added
python
Involves touching python code
tests
Involves touching tests
labels
Oct 10, 2018
Also, the |
This was referenced Nov 29, 2018
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Bug Report
Describe the problem
When running
flit bisect
with the--auto-sqlite-run
mode, a deadlock can occur if one of the parallel processes fail to run the ground-truth update. There may be other places too. I think it's mostly about uncaught exceptions by these child processes where the main process fails to wait on them and they are then defunct processes, unable to signal information to the parent process necessary to make progress.This was output to the console for me right before it deadlocked:
And then when I killed the process with CTRL-C (i.e. a SIGINT signal), I got the following traceback:
The problem happens because the return queue is not being filled with an entry when an uncaught exception occurs
Suggested Fix
Put the worker process within a
try..except
block that will add an empty entry into the return queue before reraising the uncaught exception. I think it is useful to have the exception information printed to the console for future bug reports.It would also be good to add another
except
block that capturessubprocess.CalledProcessError
and prints the error output to the console and the log. Alternatively, add that functionality toupdate_gt_results
, and anywhere elsecheck_call
orcheckout_output
are called.Alternative approaches:
Use something other than a queue to communicate between parent and children.
The text was updated successfully, but these errors were encountered: