-
Notifications
You must be signed in to change notification settings - Fork 42
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
Helper thread drop can sometimes take 1 second #23
Comments
Oh dear this is embarassing. I think this was an accidental bug from #20 which snuck in by accident! |
alexcrichton
added a commit
to alexcrichton/rust
that referenced
this issue
Jan 30, 2020
Brings in a fix for rust-lang/jobserver-rs#23 which could cause Cargo to unnecessarily hang in some situations.
Dylan-DPC-zz
pushed a commit
to Dylan-DPC-zz/rust
that referenced
this issue
Jan 30, 2020
…lan-DPC Update jobserver crate to 0.1.21 Brings in a fix for rust-lang/jobserver-rs#23 which could cause Cargo to unnecessarily hang in some situations.
bors
added a commit
to rust-lang/rust
that referenced
this issue
Jan 31, 2020
Update jobserver crate to 0.1.21 Brings in a fix for rust-lang/jobserver-rs#23 which could cause Cargo to unnecessarily hang in some situations.
Mark-Simulacrum
pushed a commit
to Mark-Simulacrum/rust
that referenced
this issue
Feb 6, 2020
Brings in a fix for rust-lang/jobserver-rs#23 which could cause Cargo to unnecessarily hang in some situations.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is a writeup of an issue where dropping the helper thread can take up to 1 second on unix (discovered while investigating rust-lang/cargo#7844). Here is a repro:
Running this usually (not always) takes about 1 second to drop.
The gist is that if you request too many tokens, and then try to drop the helper thread, it is unable to stop it. The reason is:
for_each_request
is stuck on this line, waiting for poll.Helper::join
attempts to wake it up. But the acquire loop does not check why it is being interrupted, and simply tries to go back to polling.It looks like #22 attempts to address this (and this test seems to pass with that change), but I have not reviewed that PR in detail.
The text was updated successfully, but these errors were encountered: