Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure to build 0.8.9 due to lazy_static trait bound #822

Closed
detly opened this issue May 2, 2022 · 2 comments
Closed

Failure to build 0.8.9 due to lazy_static trait bound #822

detly opened this issue May 2, 2022 · 2 comments

Comments

@detly
Copy link
Contributor

detly commented May 2, 2022

Just this morning we found that our grcov step was failing in CI due to grcov itself failing to build under the rust:1-slim docker image. I can reproduce it locally on an Ubuntu 21.10 desktop.

⚬ rustc --version
rustc 1.60.0 (7737e0b5c 2022-04-04)
⚬ cargo --version
cargo 1.60.0 (d1fd9fe 2022-03-01)
⚬ cargo install --force grcov
    Updating crates.io index
  Installing grcov v0.8.9
  Downloaded semver v1.0.8
  Downloaded libc v0.2.125
  Downloaded num-integer v0.1.45
  Downloaded serde v1.0.137
  Downloaded serde_derive v1.0.137
  Downloaded memchr v2.5.0
  Downloaded serde_json v1.0.80
  Downloaded syn v1.0.92
  Downloaded libz-sys v1.1.6
  Downloaded 9 crates (2.7 MB) in 2.46s (largest was `libz-sys` at 1.5 MB)
   Compiling libc v0.2.125
   Compiling version_check v0.9.4
   Compiling cfg-if v1.0.0
   Compiling proc-macro2 v1.0.37
   Compiling memchr v2.5.0
   Compiling unicode-xid v0.2.2
   Compiling autocfg v1.1.0
   Compiling syn v1.0.92
   Compiling serde_derive v1.0.137
   Compiling lazy_static v1.4.0
   Compiling crossbeam-utils v0.8.8
   Compiling cc v1.0.73
   Compiling serde v1.0.137
   Compiling ppv-lite86 v0.2.16
   Compiling siphasher v0.3.10
   Compiling regex-syntax v0.6.25
   Compiling log v0.4.16
   Compiling bitflags v1.3.2
   Compiling adler v1.0.2
   Compiling typenum v1.15.0
   Compiling semver-parser v0.7.0
   Compiling gimli v0.26.1
   Compiling rustc-demangle v0.1.21
   Compiling scopeguard v1.1.0
   Compiling pkg-config v0.3.25
   Compiling failure_derive v0.1.8
   Compiling serde_json v1.0.80
   Compiling ucd-trie v0.1.3
   Compiling crc32fast v1.3.2
   Compiling unic-char-range v0.9.0
   Compiling rayon-core v1.9.2
   Compiling once_cell v1.10.0
   Compiling ryu v1.0.9
   Compiling unicode-width v0.1.9
   Compiling fnv v1.0.7
   Compiling same-file v1.0.6
   Compiling unic-common v0.9.0
   Compiling maplit v1.0.2
   Compiling itoa v1.0.1
   Compiling anyhow v1.0.57
   Compiling strsim v0.8.0
   Compiling unicode-segmentation v1.9.0
   Compiling crossbeam-queue v0.3.5
   Compiling ansi_term v0.12.1
   Compiling cpp_demangle v0.3.5
   Compiling vec_map v0.8.2
   Compiling stable_deref_trait v1.2.0
   Compiling symbolic-demangle v8.7.0
   Compiling semver v1.0.8
   Compiling deunicode v0.4.3
   Compiling humansize v1.1.1
   Compiling byteorder v1.4.3
   Compiling fastrand v1.7.0
   Compiling termcolor v1.1.3
   Compiling either v1.6.1
   Compiling percent-encoding v2.1.0
   Compiling remove_dir_all v0.5.3
   Compiling rustc-hash v1.1.0
   Compiling is_executable v1.0.1
   Compiling fomat-macros v0.3.1
   Compiling smallvec v1.8.0
   Compiling uncased v0.9.6
   Compiling generic-array v0.14.5
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling memoffset v0.6.5
   Compiling num-traits v0.2.14
   Compiling crossbeam-epoch v0.9.8
   Compiling num-integer v0.1.45
   Compiling rayon v1.5.2
   Compiling msvc-demangler v0.9.0
   Compiling miniz_oxide v0.5.1
   Compiling semver v0.9.0
   Compiling backtrace v0.3.65
   Compiling libz-sys v1.1.6
   Compiling pest v2.1.3
   Compiling unic-char-property v0.9.0
   Compiling textwrap v0.11.0
   Compiling thread_local v1.1.4
   Compiling unic-ucd-version v0.9.0
   Compiling walkdir v2.3.2
   Compiling heck v0.3.3
   Compiling slug v0.1.4
   Compiling addr2line v0.17.0
   Compiling rustc_version v0.2.3
   Compiling unic-ucd-segment v0.9.0
   Compiling pest_meta v2.1.3
   Compiling aho-corasick v0.7.18
   Compiling object v0.28.3
   Compiling bstr v0.2.17
   Compiling quick-xml v0.22.0
   Compiling getrandom v0.2.6
   Compiling time v0.1.43
   Compiling atty v0.2.14
   Compiling num_cpus v1.13.1
   Compiling memmap2 v0.5.3
   Compiling tempfile v3.3.0
   Compiling quote v1.0.18
   Compiling crossbeam-channel v0.5.4
   Compiling unic-segment v0.9.0
   Compiling regex v1.5.5
   Compiling rand_core v0.6.3
   Compiling uuid v0.8.2
   Compiling clap v2.34.0
   Compiling phf_shared v0.10.0
   Compiling flate2 v1.0.23
   Compiling rand_chacha v0.3.1
   Compiling debugid v0.7.3
   Compiling block-buffer v0.10.2
   Compiling crypto-common v0.1.3
   Compiling globset v0.4.8
   Compiling phf v0.10.1
   Compiling crossbeam-deque v0.8.1
   Compiling parse-zoneinfo v0.3.0
   Compiling rand v0.8.5
   Compiling zip v0.6.2
   Compiling symbolic-common v8.7.0
   Compiling digest v0.10.3
   Compiling ignore v0.4.18
   Compiling crossbeam v0.8.1
   Compiling synstructure v0.12.6
   Compiling pest_generator v2.1.3
   Compiling md-5 v0.10.1
   Compiling globwalk v0.8.1
   Compiling phf_generator v0.10.0
   Compiling phf_codegen v0.10.0
   Compiling chrono-tz-build v0.0.2
   Compiling pest_derive v2.1.0
   Compiling structopt-derive v0.4.18
   Compiling chrono-tz v0.6.1
   Compiling failure v0.1.8
   Compiling rustc-cfg v0.4.0
   Compiling structopt v0.3.26
   Compiling chrono v0.4.19
   Compiling semver v0.10.0
   Compiling toml v0.5.9
   Compiling simplelog v0.11.2
   Compiling cargo_metadata v0.11.4
   Compiling cargo-binutils v0.3.5
   Compiling tera v1.15.0
   Compiling grcov v0.8.9
error[E0277]: `NonNull<u8>` cannot be shared between threads safely
  --> /home/jason/.cargo/registry/src/github.com-1ecc6299db9ec823/grcov-0.8.9/src/gcov.rs:69:5
   |
69 | /     lazy_static! {
70 | |         static ref V: Version = {
71 | |             let output = Command::new(&get_gcov())
72 | |                 .arg("--version")
...  |
78 | |         };
79 | |     }
   | |_____^ `NonNull<u8>` cannot be shared between threads safely
   |
   = help: within `semver::Version`, the trait `std::marker::Sync` is not implemented for `NonNull<u8>`
   = note: required because it appears within the type `semver::identifier::Identifier`
   = note: required because it appears within the type `Prerelease`
   = note: required because it appears within the type `semver::Version`
note: required by a bound in `lazy_static::lazy::Lazy`
  --> /home/jason/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/inline_lazy.rs:19:20
   |
19 | pub struct Lazy<T: Sync>(Cell<Option<T>>, Once);
   |                    ^^^^ required by this bound in `lazy_static::lazy::Lazy`
   = note: this error originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)

For more information about this error, try `rustc --explain E0277`.
error: could not compile `grcov` due to previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile `grcov v0.8.9`, intermediate artifacts can be found at `/tmp/cargo-installlTz9jj`

Caused by:
  build failed
@detly detly changed the title Failure to build 0.8.9 due to lazy_static trait bound ( Failure to build 0.8.9 due to lazy_static trait bound May 2, 2022
@detly
Copy link
Contributor Author

detly commented May 2, 2022

I suspect this might be related to: dtolnay/semver#274

@detly
Copy link
Contributor Author

detly commented May 2, 2022

Yep, okay, this was fixed with semver 1.0.9. Go back to your houses.

@detly detly closed this as completed May 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant