-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
CI: spurious hang on x86_64-msvc-1 during rustc_macros compilation #93329
Comments
@rustbot modify labels: +T-infra +A-spurious +O-windows +O-windows-msvc |
One possibility could be something like #92829. That builder has assertions enabled. |
Also happening with i686-msvc-1, so not specific to x86_64. |
It's been about 3 weeks since the last occurrence of this. I wasn't able to reproduce this. I tried for several days to reproduce by running the two jobs over and over, but they never failed. I don't have any ideas why that it is. My guess is that it might be sensitive to codegen layout, and some change has shuffled the code around enough to make it stop. Or maybe some PR incidentally fixed it? My only other theory is that there is some kind of jobserver problem. Windows is the only platform driven by Probably should keep an eye out for it in case it comes back. I won't do any more investigation. My experiments used the following change, which seemed to work when I tried an artificial hang. Might be worth considering adding something like this if the problem comes back. diff --git a/src/bootstrap/bin/rustc.rs b/src/bootstrap/bin/rustc.rs
index 7105a2457e2..bdfce66c2d6 100644
--- a/src/bootstrap/bin/rustc.rs
+++ b/src/bootstrap/bin/rustc.rs
@@ -175,6 +175,19 @@ fn main() {
let (child, status) = {
let errmsg = format!("\nFailed to run:\n{:?}\n-------------", cmd);
let mut child = cmd.spawn().expect(&errmsg);
+ let child_id = child.id().to_string();
+ std::thread::spawn(move || {
+ std::thread::sleep(std::time::Duration::from_secs(1000));
+ let status =
+ Command::new("C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64\\cdb.exe")
+ .args(["-c", "~*k;qd", "-p"])
+ .arg(&child_id)
+ .status()
+ .unwrap();
+ if !status.success() {
+ eprintln!("cdb err?");
+ }
+ });
let status = child.wait().expect(&errmsg);
(child, status)
}; |
Sometimes the build hangs there.
https://github.com/rust-lang-ci/rust/runs/4947161125?check_suite_focus=true#step:26:25990
The text was updated successfully, but these errors were encountered: