Closed Bug 1685697 Opened 4 years ago Closed 4 years ago

Permanent failure lines for successful build tasks: [crossbeam-utils 0.8.1] error[E0412]: cannot find type `AtomicU128` in module `core::sync::atomic`

Categories

(Developer Infrastructure :: General, defect, P3)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: aryx, Assigned: nical)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

Build tasks like this one always contain the following failure lines:

[crossbeam-utils 0.8.1] error[E0412]: cannot find type AtomicU128 in module core::sync::atomic
[crossbeam-utils 0.8.1] error: aborting due to previous error
[crossbeam-utils 0.8.1] error[E0412]: cannot find type AtomicU128 in module core::sync::atomic
[crossbeam-utils 0.8.1] error: aborting due to previous error

Log: https://treeherder.mozilla.org/logviewer?job_id=326168466&repo=autoland

[task 2021-01-08T11:14:57.335Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] cargo:rustc-cfg=has_atomic_u64
[task 2021-01-08T11:14:57.336Z] 11:14:57    ERROR -  [crossbeam-utils 0.8.1] error[E0412]: cannot find type `AtomicU128` in module `core::sync::atomic`
[task 2021-01-08T11:14:57.336Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]     --> <anon>:1:38
[task 2021-01-08T11:14:57.336Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]      |
[task 2021-01-08T11:14:57.336Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 1    |   pub type Probe = core::sync::atomic::AtomicU128;
[task 2021-01-08T11:14:57.336Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]      |                                        ^^^^^^^^^^ help: a struct with a similar name exists: `AtomicU16`
[task 2021-01-08T11:14:57.336Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]      |
[task 2021-01-08T11:14:57.337Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]     ::: /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/core/src/sync/atomic.rs:2139:1
[task 2021-01-08T11:14:57.337Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]      |
[task 2021-01-08T11:14:57.337Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 2139 | / atomic_int! {
[task 2021-01-08T11:14:57.337Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 2140 | |     cfg(target_has_atomic = "16"),
[task 2021-01-08T11:14:57.337Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 2141 | |     cfg(target_has_atomic_equal_alignment = "16"),
[task 2021-01-08T11:14:57.338Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 2142 | |     stable(feature = "integer_atomics_stable", since = "1.34.0"),
[task 2021-01-08T11:14:57.338Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] ...    |
[task 2021-01-08T11:14:57.338Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 2155 | |     u16 AtomicU16 ATOMIC_U16_INIT
[task 2021-01-08T11:14:57.338Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] 2156 | | }
[task 2021-01-08T11:14:57.338Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]      | |_- similarly named struct `AtomicU16` defined here
[task 2021-01-08T11:14:57.338Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]
[task 2021-01-08T11:14:57.338Z] 11:14:57    ERROR -  [crossbeam-utils 0.8.1] error: aborting due to previous error
[task 2021-01-08T11:14:57.339Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1]
[task 2021-01-08T11:14:57.339Z] 11:14:57     INFO -  [crossbeam-utils 0.8.1] For more information about this error, try `rustc --explain E0412`.

This is a regression from bug 1683294. Such permanent 'failure' lines will be also shown when the builds actually fail and will confuse Try users and code sheriffs. Please fix the underlying issue.

Flags: needinfo?(nical.bugzilla)

I don't understand what is going on here, I filed https://github.com/crossbeam-rs/crossbeam/issues/645 upstream.

So what's happening is that autocfg is spawning a rustc process, and the output of that process is just being redirected to the build script output.

Since we build with --verbose we show the build script output and think it's an error.

I think ideally autocfg should have a way (env var? something else? Maybe it should just do it by default) to eat the rustc output.

Severity: -- → S4
Priority: -- → P3

Moving to a component that looks more like it is related to the build system.

Component: Graphics: WebRender → General
Flags: needinfo?(nical.bugzilla)
Product: Core → Developer Infrastructure

Relevant comment from upstream issue:

Hmm, normally that output is captured and hidden, and even cargo build -v doesn't show anything, but cargo build -v -v does.
https://github.com/rust-lang/cargo/blob/8e403e5e77e1fb5ebdba3094c5cf424bfc473f9e/src/cargo/core/compiler/custom_build.rs#L353-L370

Perhaps we could get away with not using the very verbose mode?

https://treeherder.mozilla.org/jobs?repo=try&revision=4dbc18aacc994fb415fc7636d9df1c96f37f2dfe seems to confirm that building with -v instead of -vv removes the error from the log.

This works around an issue with our log parser picking up false positive errors from autocfg.
Autocfg is used by some of our dependencies in build scripts to detect whether certain features are support by invoking rustc and seeing whether it manages to build with them. When running cargo in very verbose mode, rustc output from these autocfg invocation is visible to our error parser.

Building in very verbose mod was introduced in bug 1473121 to help with investigating errors caused by mismatched toolchains. It would be nice to reenable it but that will require upstream changes in autocfg.

Assignee: nobody → nical.bugzilla
Status: NEW → ASSIGNED
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/69fdccc97cb0 Hide the rustc output from autocfg. r=emilio
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Regressions: 1688235
Attachment #9197078 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: