From 6a194beb64de8e1cfc2596a63353587a50098978 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Fri, 24 Jul 2026 14:19:36 +0300 Subject: [PATCH 1/2] ci: Make the `x86_64-gnu-parallel-frontend` job non-optional --- .../Dockerfile | 2 +- ...l-frontend.sh => x86_64-gnu-parallel-frontend.sh} | 0 src/ci/github-actions/jobs.yml | 7 +++---- .../src/tests/x86_64-gnu-parallel-frontend.md | 12 ++++++++++++ 4 files changed, 16 insertions(+), 5 deletions(-) rename src/ci/docker/host-x86_64/{optional-x86_64-gnu-parallel-frontend => x86_64-gnu-parallel-frontend}/Dockerfile (94%) rename src/ci/docker/scripts/{optional-x86_64-gnu-parallel-frontend.sh => x86_64-gnu-parallel-frontend.sh} (100%) create mode 100644 src/doc/rustc-dev-guide/src/tests/x86_64-gnu-parallel-frontend.md diff --git a/src/ci/docker/host-x86_64/optional-x86_64-gnu-parallel-frontend/Dockerfile b/src/ci/docker/host-x86_64/x86_64-gnu-parallel-frontend/Dockerfile similarity index 94% rename from src/ci/docker/host-x86_64/optional-x86_64-gnu-parallel-frontend/Dockerfile rename to src/ci/docker/host-x86_64/x86_64-gnu-parallel-frontend/Dockerfile index d8bfd6f52cb8b..72e06ff41c2f2 100644 --- a/src/ci/docker/host-x86_64/optional-x86_64-gnu-parallel-frontend/Dockerfile +++ b/src/ci/docker/host-x86_64/x86_64-gnu-parallel-frontend/Dockerfile @@ -39,5 +39,5 @@ ENV RUST_CONFIGURE_ARGS \ # Tests are still compiled serially at the moment (intended to be changed in follow-ups). # Running compiletest only tests for parallel frontend, then the rest without compiletest-only # options (i.e. `--parallel-frontend-threads=4 --iteration-count=2`) -COPY ./scripts/optional-x86_64-gnu-parallel-frontend.sh /scripts/ +COPY ./scripts/x86_64-gnu-parallel-frontend.sh /scripts/ ENV SCRIPT="Must specify DOCKER_SCRIPT for this image" diff --git a/src/ci/docker/scripts/optional-x86_64-gnu-parallel-frontend.sh b/src/ci/docker/scripts/x86_64-gnu-parallel-frontend.sh similarity index 100% rename from src/ci/docker/scripts/optional-x86_64-gnu-parallel-frontend.sh rename to src/ci/docker/scripts/x86_64-gnu-parallel-frontend.sh diff --git a/src/ci/github-actions/jobs.yml b/src/ci/github-actions/jobs.yml index e03ad184842e3..e6e3c1acd853b 100644 --- a/src/ci/github-actions/jobs.yml +++ b/src/ci/github-actions/jobs.yml @@ -382,11 +382,10 @@ auto: - name: x86_64-gnu <<: *job-linux-4c - - name: optional-x86_64-gnu-parallel-frontend - # This test can be flaky, so do not cancel CI if it fails, for now. - continue_on_error: true + - name: x86_64-gnu-parallel-frontend + doc_url: https://rustc-dev-guide.rust-lang.org/tests/x86_64-gnu-parallel-frontend.html env: - DOCKER_SCRIPT: optional-x86_64-gnu-parallel-frontend.sh + DOCKER_SCRIPT: x86_64-gnu-parallel-frontend.sh <<: *job-linux-4c # This job ensures commits landing on nightly still pass the full diff --git a/src/doc/rustc-dev-guide/src/tests/x86_64-gnu-parallel-frontend.md b/src/doc/rustc-dev-guide/src/tests/x86_64-gnu-parallel-frontend.md new file mode 100644 index 0000000000000..e8c91044be1d7 --- /dev/null +++ b/src/doc/rustc-dev-guide/src/tests/x86_64-gnu-parallel-frontend.md @@ -0,0 +1,12 @@ +# Parallel frontend testing on CI + +If you see any test failures in `tests/ui` from the CI job `x86_64-gnu-parallel-frontend`, please +add `//@ ignore-parallel-frontend triage` to the failing test, even if your PR is otherwise +entirely unrelated to parallel compiler or its testing. +In some time people from the parallel rustc working group will triage the failing test, make a +tracking issue for it, and try to debug the problem. + +For more context, see: + +* [MCP: Stabilization strategy for rustc parallel frontend](https://github.com/rust-lang/compiler-team/issues/1005) +* Tracking issue: From 960d0a5655288c2aaaf3d8459e39d4ac57e56f08 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Mon, 27 Jul 2026 16:40:05 +0300 Subject: [PATCH 2/2] tests/ui: Ignore one query cycle test in parallel frontend mode --- .../next-solver-region-resolution.rs | 1 + .../next-solver-region-resolution.stderr | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs b/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs index a49fe6184890f..ba7cae44a0e46 100644 --- a/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs +++ b/tests/ui/specialization/min_specialization/next-solver-region-resolution.rs @@ -1,4 +1,5 @@ //@ compile-flags: -Znext-solver=globally +//@ ignore-parallel-frontend query cycle // ICE regression test for https://github.com/rust-lang/rust/issues/151327 #![feature(min_specialization)] diff --git a/tests/ui/specialization/min_specialization/next-solver-region-resolution.stderr b/tests/ui/specialization/min_specialization/next-solver-region-resolution.stderr index 76d17e33c30ac..2a5e9bd4148fe 100644 --- a/tests/ui/specialization/min_specialization/next-solver-region-resolution.stderr +++ b/tests/ui/specialization/min_specialization/next-solver-region-resolution.stderr @@ -1,27 +1,27 @@ error[E0391]: cycle detected when coherence checking all impls of trait `Foo` - --> $DIR/next-solver-region-resolution.rs:6:1 + --> $DIR/next-solver-region-resolution.rs:7:1 | LL | trait Foo { | ^^^^^^^^^ | = note: ...which requires building specialization graph of trait `Foo`... note: ...which requires computing whether impls specialize one another... - --> $DIR/next-solver-region-resolution.rs:12:1 + --> $DIR/next-solver-region-resolution.rs:13:1 | LL | / impl<'a, T> Foo for &'a T LL | | where LL | | Self::Item: 'a, | |___________________^ -note: ...which requires computing normalized predicates of ``... - --> $DIR/next-solver-region-resolution.rs:18:1 +note: ...which requires computing normalized predicates of ``... + --> $DIR/next-solver-region-resolution.rs:19:1 | LL | / impl<'a, T> Foo for &T LL | | where LL | | Self::Item: Baz, | |____________________^ = note: ...which again requires coherence checking all impls of trait `Foo`, completing the cycle -note: cycle used when checking that `` is well-formed - --> $DIR/next-solver-region-resolution.rs:12:1 +note: cycle used when checking that `` is well-formed + --> $DIR/next-solver-region-resolution.rs:13:1 | LL | / impl<'a, T> Foo for &'a T LL | | where