Repository: rust
Issue: UI test failures with parallel-compiler=true
Labels: A-testsuite,T-compiler,C-bug,WG-compiler-parallel

I changed the `config.toml` to say

```
parallel-compiler = true
```

and ran `x.py test`.

I got this result:

```
failures:
    [ui] ui/associated-types/defaults-cyclic-fail-1.rs
    [ui] ui/associated-types/defaults-cyclic-fail-2.rs
    [ui] ui/privacy/privacy2.rs
    [ui] ui/privacy/privacy3.rs
    [ui] ui/traits/cycle-cache-err-60010.rs

test result: FAILED. 10601 passed; 5 failed; 63 ignored; 0 measured; 0 filtered out
```

<details>

More specifically:

```
failures:

---- [ui] ui/associated-types/defaults-cyclic-fail-1.rs stdout ----
diff of stderr:

22	LL |     type A = Box<Self::B>;
23	   |     ^^^^^^^^^^^^^^^^^^^^^^
24	
-	error[E0275]: overflow evaluating the requirement `<usize as Tr>::A`
-	  --> $DIR/defaults-cyclic-fail-1.rs:37:5
-	   |
-	LL |     type B = &'static Self::A;
-	   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
-	
-	error: aborting due to 5 previous errors
+	error: aborting due to 4 previous errors
32	
33	For more information about this error, try `rustc --explain E0275`.
34	


The actual stderr differed from the expected stderr.
Actual stderr saved to /home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-cyclic-fail-1/defaults-cyclic-fail-1.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args associated-types/defaults-cyclic-fail-1.rs`

error: 1 errors occurred comparing output.
status: exit code: 1
command: "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-1.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-cyclic-fail-1" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-cyclic-fail-1/auxiliary"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
error[E0275]: overflow evaluating the requirement `<() as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-1.rs:10:6
   |
LL | impl Tr for () {}
   |      ^^

error[E0275]: overflow evaluating the requirement `<bool as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-1.rs:28:6
   |
LL | impl Tr for bool {
   |      ^^

error[E0275]: overflow evaluating the requirement `<usize as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-1.rs:35:6
   |
LL | impl Tr for usize {
   |      ^^

error[E0275]: overflow evaluating the requirement `<bool as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-1.rs:30:5
   |
LL |     type A = Box<Self::B>;
   |     ^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0275`.

------------------------------------------


---- [ui] ui/associated-types/defaults-cyclic-fail-2.rs stdout ----
diff of stderr:

22	LL |     type A = Box<Self::B>;
23	   |     ^^^^^^^^^^^^^^^^^^^^^^
24	
-	error[E0275]: overflow evaluating the requirement `<usize as Tr>::A`
-	  --> $DIR/defaults-cyclic-fail-2.rs:39:5
-	   |
-	LL |     type B = &'static Self::A;
-	   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
-	
-	error: aborting due to 5 previous errors
+	error: aborting due to 4 previous errors
32	
33	For more information about this error, try `rustc --explain E0275`.
34	


The actual stderr differed from the expected stderr.
Actual stderr saved to /home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-cyclic-fail-2/defaults-cyclic-fail-2.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args associated-types/defaults-cyclic-fail-2.rs`

error: 1 errors occurred comparing output.
status: exit code: 1
command: "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-2.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-cyclic-fail-2" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/associated-types/defaults-cyclic-fail-2/auxiliary"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
error[E0275]: overflow evaluating the requirement `<() as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-2.rs:12:6
   |
LL | impl Tr for () {}
   |      ^^

error[E0275]: overflow evaluating the requirement `<bool as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-2.rs:30:6
   |
LL | impl Tr for bool {
   |      ^^

error[E0275]: overflow evaluating the requirement `<usize as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-2.rs:37:6
   |
LL | impl Tr for usize {
   |      ^^

error[E0275]: overflow evaluating the requirement `<bool as Tr>::B`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/associated-types/defaults-cyclic-fail-2.rs:32:5
   |
LL |     type A = Box<Self::B>;
   |     ^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0275`.

------------------------------------------


---- [ui] ui/privacy/privacy2.rs stdout ----
diff of stderr:

23	
24	error: requires `sized` lang_item
25	
-	error: aborting due to 3 previous errors
+	error: requires `sized` lang_item
+	
+	error: requires `sized` lang_item
+	
+	error: aborting due to 5 previous errors
27	
28	Some errors have detailed explanations: E0432, E0603.
29	For more information about an error, try `rustc --explain E0432`.


The actual stderr differed from the expected stderr.
Actual stderr saved to /home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/privacy/privacy2/privacy2.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args privacy/privacy2.rs`

error: 1 errors occurred comparing output.
status: exit code: 1
command: "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy2.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/privacy/privacy2" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/privacy/privacy2/auxiliary"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
error[E0432]: unresolved import `bar::foo`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy2.rs:17:9
   |
LL |     use bar::foo;
   |         ^^^^^^^^ no `foo` in `bar`

error[E0603]: function import `foo` is private
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy2.rs:23:20
   |
LL |     use bar::glob::foo;
   |                    ^^^ private function import
   |
note: the function import `foo` is defined here...
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy2.rs:10:13
   |
LL |         use foo;
   |             ^^^
note: ...and refers to the function `foo` which is defined here
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy2.rs:14:1
   |
LL | pub fn foo() {}
   | ^^^^^^^^^^^^ consider importing it directly

error: requires `sized` lang_item

error: requires `sized` lang_item

error: requires `sized` lang_item

error: aborting due to 5 previous errors

Some errors have detailed explanations: E0432, E0603.
For more information about an error, try `rustc --explain E0432`.

------------------------------------------


---- [ui] ui/privacy/privacy3.rs stdout ----
diff of stderr:

6	
7	error: requires `sized` lang_item
8	
-	error: aborting due to 2 previous errors
+	error: requires `sized` lang_item
+	
+	error: requires `sized` lang_item
+	
+	error: aborting due to 4 previous errors
10	
11	For more information about this error, try `rustc --explain E0432`.
12	


The actual stderr differed from the expected stderr.
Actual stderr saved to /home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/privacy/privacy3/privacy3.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args privacy/privacy3.rs`

error: 1 errors occurred comparing output.
status: exit code: 1
command: "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy3.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/privacy/privacy3" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/privacy/privacy3/auxiliary"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
error[E0432]: unresolved import `bar::gpriv`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/privacy/privacy3.rs:18:9
   |
LL |     use bar::gpriv;
   |         ^^^^^^^^^^ no `gpriv` in `bar`

error: requires `sized` lang_item

error: requires `sized` lang_item

error: requires `sized` lang_item

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0432`.

------------------------------------------


---- [ui] ui/traits/cycle-cache-err-60010.rs stdout ----
diff of stderr:

6	   |
7	   = note: required because of the requirements on the impl of `Query<RootDatabase>` for `ParseQuery`
8	
-	error[E0275]: overflow evaluating the requirement `Runtime<RootDatabase>: std::panic::RefUnwindSafe`
-	  --> $DIR/cycle-cache-err-60010.rs:31:20
-	   |
-	LL | trait Database {
-	   |       -------- required by a bound in this
-	LL |     type Storage;
-	   |     ------------- required by this bound in `Database`
-	...
-	LL |     type Storage = SalsaStorage;
-	   |                    ^^^^^^^^^^^^
-	   |
-	   = note: required because it appears within the type `RootDatabase`
-	   = note: required because of the requirements on the impl of `SourceDatabase` for `RootDatabase`
-	   = note: required because of the requirements on the impl of `Query<RootDatabase>` for `ParseQuery`
-	   = note: required because it appears within the type `SalsaStorage`
-	
-	error: aborting due to 2 previous errors
+	error: aborting due to previous error
26	
27	For more information about this error, try `rustc --explain E0275`.
28	


The actual stderr differed from the expected stderr.
Actual stderr saved to /home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/traits/cycle-cache-err-60010/cycle-cache-err-60010.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args traits/cycle-cache-err-60010.rs`

error: 1 errors occurred comparing output.
status: exit code: 1
command: "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/traits/cycle-cache-err-60010.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/traits/cycle-cache-err-60010" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui/traits/cycle-cache-err-60010/auxiliary"
stdout:
------------------------------------------

------------------------------------------
stderr:
------------------------------------------
error[E0275]: overflow evaluating the requirement `RootDatabase: SourceDatabase`
  --> /home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui/traits/cycle-cache-err-60010.rs:27:13
   |
LL |     _parse: <ParseQuery as Query<RootDatabase>>::Data, //~ ERROR overflow
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: required because of the requirements on the impl of `Query<RootDatabase>` for `ParseQuery`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0275`.

------------------------------------------



failures:
    [ui] ui/associated-types/defaults-cyclic-fail-1.rs
    [ui] ui/associated-types/defaults-cyclic-fail-2.rs
    [ui] ui/privacy/privacy2.rs
    [ui] ui/privacy/privacy3.rs
    [ui] ui/traits/cycle-cache-err-60010.rs

test result: FAILED. 10601 passed; 5 failed; 63 ignored; 0 measured; 0 filtered out

thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:353:22
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


command did not execute successfully: "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/lib" "--run-lib-path" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "--src-base" "/home/pnkfelix/Dev/Mozilla/rust.git/src/test/ui" "--build-base" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage1-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--nodejs" "/usr/bin/node" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/home/pnkfelix/Dev/Mozilla/rust.git/objdir-opt/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python" "--lldb-python" "/usr/bin/python" "--gdb" "/usr/bin/gdb" "--lldb-version" "lldb version 10.0.0\n" "--lldb-python-dir" "/usr/lib/lib/python3/dist-packages" "--quiet" "--llvm-version" "10.0.1-rust-dev" "--llvm-components" "aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter cfguard codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker engine executionengine frontendopenmp fuzzmutate globalisel gtest gtest_main hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interpreter ipo irreader jitlink libdriver lineeditor linker lto mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option orcerror orcjit passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvutils runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target testingsupport textapi transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86utils xray" "--cc" "" "--cxx" "" "--cflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" ""
```

</details>

I know that the parallel-compiler setting is still experimental/unsupported.

But it would be nice if it didn't inject test failures like this, if we can fix it.