Skip to content

UI Tests that check ICEing thread names break with parallel-compiler = true #65047

Closed
@anp

Description

@anp

When I run ./x.py test locally on a clean checkout of master with parallel-compiler = true, I see a couple of failures that seem to be related to the name of the rustc thread which ICEd in the tests. I turned parallel-compiler off, reran the test command, and the tests passed.

Here's the stderr diffs of the failing tests:

---- [ui] ui/consts/miri_unleashed/mutable_references_ice.rs stdout ----
diff of stderr:

4	LL |     x: &UnsafeCell::new(42),
5	   |        ^^^^^^^^^^^^^^^^^^^^
6	
-	thread 'rustc' panicked at 'assertion failed: `(left != right)`
+	thread '<unnamed>' panicked at 'assertion failed: `(left != right)`
8	  left: `Const`,

...

---- [ui] ui/pattern/const-pat-ice.rs stdout ----
diff of stderr:

-	thread 'rustc' panicked at 'assertion failed: rows.iter().all(|r| r.len() == v.len())', src/librustc_mir/hair/pattern/_match.rs:LL:CC
+	thread '<unnamed>' panicked at 'assertion failed: rows.iter().all(|r| r.len() == v.len())', src/librustc_mir/hair/pattern/_match.rs:LL:CC
2	note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

My assumption is that the parallel-compiler flag doesn't result in all of the threads being named rustc, and so when the ICE occurs it produces an error message from an unnamed thread. I also assume this is totally OK in most cases, because very few things rely on the names of compiler threads.

If these completely unfounded assumptions are accurate, then would it be reasonable to set the name of threads in the compiler's pool?

  • Commit: c6293e3
  • OS: Arch Linux (fairly current as of filing)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-parallel-compilerArea: parallel compilerC-bugCategory: This is a bug.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions