appveyor: Attempt to debug flaky test runs
This commit is an attempt to debug #38620 since we're unable to reproduce it locally. It follows the [advice] of those with AppVeyor to use the `handle.exe` tool to try to debug what processes have a handle to the file open. This won't be guaranteed to actually help us, but hopefully it'll diagnose something at some point? [advice]: http://help.appveyor.com/discussions/questions/2898
This commit is contained in:
parent
3f957ebeff
commit
e5c778228e
2 changed files with 45 additions and 0 deletions
|
@ -96,6 +96,13 @@ install:
|
||||||
- 7z x -y sccache.tar > nul
|
- 7z x -y sccache.tar > nul
|
||||||
- set PATH=%PATH%;%CD%\sccache2
|
- set PATH=%PATH%;%CD%\sccache2
|
||||||
|
|
||||||
|
# Help debug some handle issues on AppVeyor
|
||||||
|
- ps: Invoke-WebRequest -Uri https://download.sysinternals.com/files/Handle.zip -OutFile handle.zip
|
||||||
|
- mkdir handle
|
||||||
|
- ps: Expand-Archive handle.zip -dest handle
|
||||||
|
- set PATH=%PATH%;%CD%\handle
|
||||||
|
- handle.exe -accepteula -help
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
- git submodule update --init
|
- git submodule update --init
|
||||||
- set SRC=.
|
- set SRC=.
|
||||||
|
|
|
@ -1619,10 +1619,48 @@ actual:\n\
|
||||||
}
|
}
|
||||||
|
|
||||||
fn fatal_proc_rec(&self, err: &str, proc_res: &ProcRes) -> ! {
|
fn fatal_proc_rec(&self, err: &str, proc_res: &ProcRes) -> ! {
|
||||||
|
self.try_print_open_handles();
|
||||||
self.error(err);
|
self.error(err);
|
||||||
proc_res.fatal(None);
|
proc_res.fatal(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This function is a poor man's attempt to debug rust-lang/rust#38620, if
|
||||||
|
// that's closed then this should be deleted
|
||||||
|
//
|
||||||
|
// This is a very "opportunistic" debugging attempt, so we ignore all
|
||||||
|
// errors here.
|
||||||
|
fn try_print_open_handles(&self) {
|
||||||
|
if !cfg!(windows) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.config.mode != Incremental {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let filename = match self.testpaths.file.file_stem() {
|
||||||
|
Some(path) => path,
|
||||||
|
None => return,
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut cmd = Command::new("handle.exe");
|
||||||
|
cmd.arg("-a").arg("-u");
|
||||||
|
cmd.arg(filename);
|
||||||
|
cmd.arg("-nobanner");
|
||||||
|
let output = match cmd.output() {
|
||||||
|
Ok(output) => output,
|
||||||
|
Err(_) => return,
|
||||||
|
};
|
||||||
|
println!("---------------------------------------------------");
|
||||||
|
println!("ran extra command to debug rust-lang/rust#38620: ");
|
||||||
|
println!("{:?}", cmd);
|
||||||
|
println!("result: {}", output.status);
|
||||||
|
println!("--- stdout ----------------------------------------");
|
||||||
|
println!("{}", String::from_utf8_lossy(&output.stdout));
|
||||||
|
println!("--- stderr ----------------------------------------");
|
||||||
|
println!("{}", String::from_utf8_lossy(&output.stderr));
|
||||||
|
println!("---------------------------------------------------");
|
||||||
|
}
|
||||||
|
|
||||||
fn _arm_exec_compiled_test(&self, env: Vec<(String, String)>) -> ProcRes {
|
fn _arm_exec_compiled_test(&self, env: Vec<(String, String)>) -> ProcRes {
|
||||||
let args = self.make_run_args();
|
let args = self.make_run_args();
|
||||||
let cmdline = self.make_cmdline("", &args.prog, &args.args);
|
let cmdline = self.make_cmdline("", &args.prog, &args.args);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue