rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
97.79k stars 12.66k forks source link

Unstable fingerprints: defined_lang_items #85495

Open jackh726 opened 3 years ago

jackh726 commented 3 years ago

Unfortunately, don't really have much on this. Encountered when rebasing a rustc branch onto the current master and running tests. Tests where error happened:

Error:

thread 'rustc' panicked at 'Found unstable fingerprints for defined_lang_items(std[f5e7]): [(DefId(1:426 ~ std[f5e7]::f32::{impl#0}), 27), (DefId(1:519 ~ std[f5e7]::f64::{impl#0}), 28), (DefId(1:9591 ~ std[f5e7]::panicking::begin_panic_handler), 91), (DefId(1:9615 ~ std[f5e7]::panicking::begin_panic), 92), (DefId(1:9454 ~ std[f5e7]::alloc::rust_oom), 96), (DefId(1:9655 ~ std[f5e7]::rt::lang_start), 98), (DefId(1:7150 ~ std[f5e7]::process::Termination), 106), (DefId(1:6426 ~ std[f5e7]::panic::UnwindSafe), 134), (DefId(1:6427 ~ std[f5e7]::panic::RefUnwindSafe), 135)]', /home/hueyj/temp/rust/rust/compiler/rustc_query_system/src/query/plumbing.rs:619:9
Aaron1011 commented 3 years ago

This is due to a compiletest caching issue. Both of these tests are normal UI tests that manually specify a -C incremental with a path inside a directory named tmp. Since these files are only compiled once per run (unlike tests with incremental revisions), they should always start with a nonexistent incremental cache. However, the error message shows that these tests are sometimes being run with an existing incremental cache, which should never happen.

I think that compiletest should clear out the tmp directory before running a test.