Parallel frontend test failures
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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