-
-
Notifications
You must be signed in to change notification settings - Fork 344
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
ConflictDetector: kill both tasks #2540
base: main
Are you sure you want to change the base?
Conversation
It's not always obvious which task is the "bad guy" when a conflict occurs. If the "legitimate" task crashes and the buggy one, i.e. the one that forgot to take the lock, does not, the backtrace is not helpful. Thus, kill them both.
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #2540 +/- ##
==========================================
- Coverage 93.50% 92.44% -1.07%
==========================================
Files 118 118
Lines 16335 16340 +5
Branches 3156 3157 +1
==========================================
- Hits 15274 15105 -169
- Misses 955 1105 +150
- Partials 106 130 +24
|
ecc3f5e
to
4857c1b
Compare
These codecov results seem rather spurious. |
This is a breaking change. Previously, if you wanted to see if some other task was waiting on an FD, you could try to wait on it and catch BusyResourceError. I have used this pattern to implement "make sure someone is waiting" on multiplexed interfaces (such as inotify) without a system task. I would be frustrated if we broke that. |
It's not always obvious which task is the "bad guy" when a conflict occurs. If the "legitimate" task crashes and the buggy one, i.e. the one that forgot to take the lock, does not, the backtrace is not helpful.
Thus, kill them both.