Skip to content

rustbuild: --no-fail-fast tries to compile rustc 40+ times (due to crossbeam-utils failure) before eventually failing #74801

Open

Description

@infinity0

See for example https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=amd64&ver=1.44.1%2Bdfsg1-1%7Eexp1&stamp=1594606550&raw=0 (warning, 30MB HTML), raw text 25MB where the error message "cannot find type AtomicU128" crops up 46 times.

Presumably this is because 46 things depend on crossbeam-utils. But then they should automatically fail when one of their dependencies has recorded a failure, instead of re-running the same command. (In other words --no-fail-fast should only move onto other targets whose dependencies haven't failed.)

It's hard to notice these failures, since the error messages quickly scroll out of view. I only noticed because I eventually realised the build really shouldn't be taking 3+ hours.

Activity

  1. changed the title [-]rustbuild: --no-fail-fast tries to compile crossbeam-utils 40+ times before eventually failing[/-] [+]rustbuild: --no-fail-fast tries to compile rustc 40+ times (due to crossbeam-utils failure) before eventually failing[/+] on Jul 27, 2020
  2. infinity0 commented on Jul 27, 2020

    @infinity0
    ContributorAuthor

    edited the bug title to clarify that it tries to compile the whole of rustc 40+ times, a massive waste of time

  3. added
    T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
    on Jul 27, 2020
  4. added a commit that references this issue on Jul 27, 2020
  5. Mark-Simulacrum commented on Aug 2, 2020

    @Mark-Simulacrum
    Member

    AFAICT, this is not trying to compile rustc 40+ times, it's just the tests for each rustc crate -- building those will always fail if a dependency like crossbeam-utils is failing to compile.

    I'm not sure what behavior is expected from no-fail-fast, though -- I don't think we have a good way of differentiating the different kinds of cargo test failures (i.e., unit test failure from "could not build"). Maybe we could get Cargo to return different exit codes or something like that...

  6. Enselic commented on Dec 16, 2023

    @Enselic
    Member

    Triage: Is this still a problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions