rust-lang / rust-lang/rust

Parallel frontend test failures

Open
#154,314 0 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-parallel-compiler A-reproducibility A-testsuite C-tracking-issue T-compiler
Dominant language
Rust
Stars
119k
Forks
16.2k
PR merge metrics
PR metrics pending

Description

#153801 introduced an option to run rustc tests with parallel compiler enabled using option --parallel-frontend-threads for tests/ui.
A number of tests are failing in that mode and were marked with //@ ignore-parallel-frontend due to more or less subtle difference in output diagnostics due to non-determinism.

This is an umbrella issue for those failures.
Some of the failures will get separate dedicated issues (or preferably just PRs with fixes) that will be linked from here.

List of the failures with reasons:

reason tests issues status
ICE: variances unwrap None (in query cycle) [tests/ui/parallel-rustc/variances-cycle-ice-154560.rs] #154560 unresolved
ICE: fn signature delayed bug (in query cycle) [tests/ui/parallel-rustc/fn-sig-cycle-ice-154560.rs] #154056 unresolved
different infer type: bool [consts/const-item-no-type/in-macro.rs] #157659 fixed
query cycle [async-await/mutually-recursive-async-impl-trait-type.rs, consts/recursive-zst-static.rs, cycle-trait/cycle-trait-supertrait-indirect.rs, cycle-trait/issue-12511.rs, delegation/unsupported.rs, generic-associated-types/unknown-lifetime-ice-119827.rs, impl-trait/auto-trait-leakage/auto-trait-leak.rs, infinite/infinite-trait-alias-recursion.rs, infinite/infinite-type-alias-mutual-recursion.rs, issues/issue-17252.rs, issues/issue-34373.rs, pattern/non-structural-match-types-cycle-err.rs, recursion/issue-23302-3.rs, resolve/resolve-self-in-impl.rs, traits/alias/infinite_normalization.rs, wf/ice-hir-wf-check-anon-const-issue-122989.rs] #142063 unresolved
different alloc ids [const-generics/issues/issue-100313.rs, const-generics/min_const_generics/invalid-patterns.rs, const-ptr/forbidden_slices.rs, const-ptr/out_of_bounds_read.rs, consts/const-compare-bytes-ub.rs, consts/const-err-enum-discriminant.rs, consts/const-eval/c-variadic-fail.rs, consts/const-eval/const-pointer-values-in-various-types.rs, consts/const-eval/heap/alloc_intrinsic_uninit.rs, consts/const-eval/heap/dealloc_intrinsic_dangling.rs, consts/const-eval/heap/dealloc_intrinsic_duplicate.rs, consts/const-eval/heap/dealloc_intrinsic_incorrect_layout.rs, consts/const-eval/heap/make-global-dangling.rs, consts/const-eval/heap/make-global-other.rs, consts/const-eval/heap/make-global-twice.rs, consts/const-eval/heap/ptr_made_global_mutated.rs, consts/const-eval/issue-49296.rs, consts/const-eval/ptr_fragments_mixed.rs, consts/const-eval/raw-bytes.rs, consts/const-eval/raw-pointer-ub.rs, consts/const-eval/read_partial_ptr.rs, consts/const-eval/ub-enum-overwrite.rs, consts/const-eval/ub-enum.rs, consts/const-eval/ub-incorrect-vtable.rs, consts/const-eval/ub-nonnull.rs, consts/const-eval/ub-ref-ptr.rs, consts/const-eval/ub-upvars.rs, consts/const-eval/ub-wide-ptr.rs, consts/const-eval/union-const-eval-field.rs, consts/const-eval/union-ice.rs, consts/const-eval/union-ub.rs, consts/copy-intrinsic.rs, consts/interior-mut-const-via-union.rs, consts/issue-63952.rs, consts/issue-79690.rs, consts/miri_unleashed/static-no-inner-mut.rs, consts/missing_span_in_backtrace.rs, consts/offset_ub.rs, intrinsics/intrinsic-raw_eq-const-bad.rs, type/pattern_types/validity.rs] #157665 fixed
queries overflow the depth limit [consts/chained-constants-stackoverflow.rs] #146616 not planned (https://github.com/rust-lang/rust/issues/146616#issuecomment-3853836558)
dep graph [dep-graph/dep-graph-assoc-type-codegen.rs, dep-graph/dep-graph-caller-callee.rs, dep-graph/dep-graph-struct-signature.rs, dep-graph/dep-graph-trait-impl-two-traits-same-method.rs, dep-graph/dep-graph-trait-impl.rs, dep-graph/dep-graph-type-alias.rs, dep-graph/dep-graph-variance-alias.rs] #157607 fixed
invalid svg(multiple threads trying to write to the same file) [error-emitter/multiline-removal-suggestion.rs] #157606 fixed
post-monomorphization errors [abi/simd-abi-checks-avx.rs, consts/const-eval/index-out-of-bounds-never-type.rs, consts/const-eval/issue-50814-2.rs, consts/const-eval/issue-50814.rs, consts/mono-reachable-invalid-const.rs, consts/required-consts/collect-in-called-fn.rs, consts/required-consts/collect-in-dead-closure.rs, consts/required-consts/collect-in-dead-drop.rs, consts/required-consts/collect-in-dead-fn-behind-assoc-type.rs, consts/required-consts/collect-in-dead-fn-behind-generic.rs, consts/required-consts/collect-in-dead-fn-behind-opaque-type.rs, consts/required-consts/collect-in-dead-fn.rs, consts/required-consts/collect-in-dead-fnptr-in-const.rs, consts/required-consts/collect-in-dead-fnptr.rs, consts/required-consts/collect-in-dead-forget.rs, consts/required-consts/collect-in-dead-move.rs, consts/required-consts/collect-in-dead-vtable.rs, consts/required-consts/collect-in-promoted-const.rs, consts/required-consts/interpret-in-const-called-fn.rs, consts/required-consts/interpret-in-promoted.rs, consts/required-consts/interpret-in-static.rs, inline-const/required-const.rs, lint/large_assignments/copy_into_box_rc_arc.rs, lint/large_assignments/copy_into_fn.rs, lint/large_assignments/inline_mir.rs, lint/large_assignments/large_future.rs, lint/large_assignments/move_into_fn.rs, simd/const-err-trumps-simd-err.rs, structs/default-field-values/post-mono.rs] #154260 fixed
unstable liveness diagnostics [closures/2229_closure_analysis/diagnostics/liveness.rs, lint/unused/unused-assign-148960.rs, liveness/liveness-consts.rs, liveness/liveness-dead.rs, liveness/liveness-upvars.rs, liveness/unused-assignments-diverging-branch-issue-156416.rs] #157299 fixed
pattern matching error message mismatch [pattern/usefulness/empty-types.rs] #157299 fixed
notes on different source lines [lint/non-snake-case/lint-uppercase-variables.rs, lint/rfc-2383-lint-reason/force_warn_expected_lints_fulfilled.rs, liveness/liveness-unused.rs, rust-2018/edition-lint-inter-outlives/edition-lint-infer-outlives-macro.fixed, rust-2018/edition-lint-inter-outlives/edition-lint-infer-outlives-macro.rs] #157299, #157300 fixed

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the tests listed under the unresolved reasons in the issue, especially tests/ui/parallel-rustc/variances-cycle-ice-154560.rs and fn-sig-cycle-ice-154560.rs. Run the rustc UI tests with --parallel-frontend-threads, then follow the linked issues for each remaining failure. Done means the affected tests no longer fail in parallel mode and the umbrella list is updated.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.