-
Notifications
You must be signed in to change notification settings - Fork 13.4k
assertion failed: task.unwinder.unwinding #8863
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
Comments
@bblum noted that this doesn't reproduce readily on Linux. I'm on Mac. Maybe changing the |
A shorter version that also crashes here: https://gist.github.com/jorendorff/6383761 |
It is distinctly more likely with more |
Changing number of threads or number of iterations does not help. Still haven't been able to reproduce here. |
OK, one more observation (and I'd be thrilled to gdb this for you, to answer your questions, play your hunches, whatever. I just don't know what to look for.) There are two ways for the leftover tasks in this program to be killed:
The assertion failure only seems to occur when many tasks are "killed by linked failure". When most tasks are killed the other way, it doesn't happen. |
It's weird that you say that, because whenever I run the test, basically all the tasks are killed by linked failure. I think I only have one each time receiving on a closed channel. You say you can gdb it? Can you get a backtrace? |
@bblum Yes, see the last link in the initial report. |
The reasons for doing this are: * The model on which linked failure is based is inherently complex * The implementation is also very complex, and there are few remaining who fully understand the implementation * There are existing race conditions in the core context switching function of the scheduler, and possibly others. * It's unclear whether this model of linked failure maps well to a 1:1 threading model Linked failure is often a desired aspect of tasks, but we would like to take a much more conservative approach in re-implementing linked failure if at all. Closes #8674 Closes #8318 Closes #8863
…r=llogiq Add `needless_pass_by_ref_mut` lint changelog: [`needless_pass_by_ref_mut`]: This PR add a new lint `needless_pass_by_ref_mut` which emits a warning in case a `&mut` function argument isn't used mutably. It doesn't warn on trait and trait impls functions. Fixes rust-lang#8863.
Program here: https://gist.github.com/jorendorff/6380686
Compiled with
rustc -o blocking_pipe blocking_pipe.rs
Output here, with a stack: https://gist.github.com/jorendorff/6383398
The text was updated successfully, but these errors were encountered: