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

rust-cbindgen: 0.13.1 -> 0.13.2 #83247

Merged
merged 1 commit into from Apr 2, 2020

Conversation

r-ryantm
Copy link
Contributor

Semi-automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/eqrion/cbindgen/releases.

meta.description for rust-cbindgen is: "A project for generating C bindings from Rust code"

meta.homepage for rust-cbindgen is: "https://github.com/eqrion/cbindgen"

Updates performed:

  • Rust version update
  • Quoted meta.homepage for RFC 45

Compare changes on GitHub

Checks done (click to expand)
Rebuild report (if merged into master) (click to expand)

36 total rebuild path(s)

10 package rebuild(s)

10 x86_64-linux rebuild(s)
10 i686-linux rebuild(s)
6 x86_64-darwin rebuild(s)
10 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
adoptopenjdk-icedtea-web
firefox-esr-68-unwrapped
firefox-unwrapped
firefoxPackages.firefox
firefoxPackages.firefox-esr-68
mozplugger
rust-cbindgen
slimerjs
thunderbird
xulrunner

Instructions to test this update (click to expand)

Either download from Cachix:

nix-store -r /nix/store/q321xa7nd39jsgkpszpqlwdid6v56z45-rust-cbindgen-0.13.2 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.

Or, build yourself:

nix-build -A rust-cbindgen https://github.com/r-ryantm/nixpkgs/archive/76458f89f47b1b8b2db1e6272f56d3919ce682d0.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:

ls -la /nix/store/q321xa7nd39jsgkpszpqlwdid6v56z45-rust-cbindgen-0.13.2
ls -la /nix/store/q321xa7nd39jsgkpszpqlwdid6v56z45-rust-cbindgen-0.13.2/bin

cc @jtojnar @andir for testing.

Copy link
Contributor

@jonringer jonringer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

several regressions

[5 built (2 failed), 43 copied (2027.9 MiB), 1152.9 MiB DL]
error: build of '/nix/store/8p4299inv57nma311vyw4b9jf8jy8pxa-env.drv' failed
https://github.com/NixOS/nixpkgs/pull/83247
5 package failed to build:
adoptopenjdk-icedtea-web firefox-esr-68-unwrapped xulrunner mozplugger slimerjs

2 package built:
rust-cbindgen thunderbird

@andir
Copy link
Member

andir commented Mar 24, 2020 via email

@bhipple
Copy link
Contributor

bhipple commented Mar 25, 2020

As one data point, the last time we updated rust-cbindgen nixpkgs-review failed, but it succeeded if you just ran nix-build on all the packages:
#80243 (comment)

My suspicion is that the combination of the simultaneous firefox latest + firefox ESR rebuilds is causing your nixpkgs-review failure @jonringer, and if you just build them individually prior to running review you'll be OK.

@jonringer
Copy link
Contributor

@GrahamcOfBorg build firefox-esr-68-unwrapped

@bhipple bhipple merged commit ea88454 into NixOS:master Apr 2, 2020
@r-ryantm r-ryantm deleted the auto-update/rust-cbindgen branch April 2, 2020 21:14
flokli added a commit that referenced this pull request Apr 4, 2020
This reverts commit 76458f8.

It was causing the firefox build to fail. See
#83247 for the discussion.
@flokli
Copy link
Contributor

flokli commented Apr 4, 2020

I discovered firefox build failures both in master and while building #84211, so I'm fairly confident this is a regression introduced by the bump of rust-cbindgen:

free(): invalid pointer
In file included from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Latin1.h:17,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/TextUtils.h:13,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Utf8.h:19,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/RecordReplay.h:16,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Atomics.h:22,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/nsISupportsImpl.h:24,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/nsISupportsUtils.h:14,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/nsISupports.h:79,
                 from /build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/nsIEventTarget.h:10,
                 from /build/firefox-74.0.1/xpcom/base/MemoryTelemetry.h:12,
                 from /build/firefox-74.0.1/xpcom/base/MemoryTelemetry.cpp:7,
                 from Unified_cpp_xpcom_base1.cpp:2:
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Tuple.h: In instantiation of 'struct mozilla::detail::TupleImpl<5, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool, bool, mozilla::dom::UserActivation::State, bool, RefPtr<mozilla::dom::FeaturePolicy>, unsigned int, nsID, bool, bool, bool, mozilla::dom::GVAutoplayRequestStatus, mozilla::dom::GVAutoplayRequestStatus, float, mozilla::dom::OrientationType>':
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Tuple.h:114:8:   recursively required from 'struct mozilla::detail::TupleImpl<1, bool, bool, nsILoadInfo::CrossOriginEmbedderPolicy, nsILoadInfo::CrossOriginOpenerPolicy, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool, bool, mozilla::dom::UserActivation::State, bool, RefPtr<mozilla::dom::FeaturePolicy>, unsigned int, nsID, bool, bool, bool, mozilla::dom::GVAutoplayRequestSta>
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Tuple.h:114:8:   required from 'struct mozilla::detail::TupleImpl<0, nsTString<char16_t>, bool, bool, nsILoadInfo::CrossOriginEmbedderPolicy, nsILoadInfo::CrossOriginOpenerPolicy, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool, bool, mozilla::dom::UserActivation::State, bool, RefPtr<mozilla::dom::FeaturePolicy>, unsigned int, nsID, bool, bool, bool, mozilla::dom::GVAutoplayR>
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Tuple.h:224:7:   required from 'class mozilla::Tuple<nsTString<char16_t>, bool, bool, nsILoadInfo::CrossOriginEmbedderPolicy, nsILoadInfo::CrossOriginOpenerPolicy, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool, bool, mozilla::dom::UserActivation::State, bool, RefPtr<mozilla::dom::FeaturePolicy>, unsigned int, nsID, bool, bool, bool, mozilla::dom::GVAutoplayRequestStatus, mo>
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/dom/SyncedContext.h:162:14:   required from 'struct mozilla::dom::syncedcontext::FieldStorage<void, nsTString<char16_t>, bool, bool, nsILoadInfo::CrossOriginEmbedderPolicy, nsILoadInfo::CrossOriginOpenerPolicy, long unsigned int, long unsigned int, long unsigned int, long unsigned int, bool, bool, mozilla::dom::UserActivation::State, bool, RefPtr<mozilla::dom::FeaturePolicy>, unsigned int, nsID, bool, bool, >
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/dom/BrowsingContext.h:128:3:   required from here
/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/dist/include/mozilla/Tuple.h:114:8: internal compiler error: Aborted
  114 | struct TupleImpl<Index, HeadT, TailT...>
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
make[3]: *** [/build/firefox-74.0.1/config/rules.mk:729: Unified_cpp_xpcom_base1.o] Error 1
make[3]: Leaving directory '/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/xpcom/base'
make[2]: *** [/build/firefox-74.0.1/config/recurse.mk:74: xpcom/base/target-objects] Error 2
make[3]: Leaving directory '/build/firefox-74.0.1/obj-x86_64-pc-linux-gnu/netwerk/cache2'

Full log (xz compressed)

I pushed a revert in 09dde57.

@bhipple
Copy link
Contributor

bhipple commented Apr 4, 2020

Strange, both @andir and I managed to build /nix/store/n5bncnlq8m7qf5j6r9a7064k2fkxd89c-firefox-unwrapped-74.0 in this PR. I'll try again and see, but in the meantime a revert seems sensible.

@bhipple
Copy link
Contributor

bhipple commented Apr 4, 2020

I just built firefox on the last commit of master prior to the revert:

$ git checkout 09dde57e93d010b786eed4796d53f34a6c6e3891^
$ nix-build -A firefox -A rust-cbindgen
/nix/store/4ipn59ydqk1xwy1l9adwkb0icz1ndhlb-firefox-74.0
/nix/store/q321xa7nd39jsgkpszpqlwdid6v56z45-rust-cbindgen-0.13.2

I suspect that the build is just huge and vulnerable to the build host running out of memory and the OS killing something, resulting in the appearance of failure.

@alyssais
Copy link
Member

alyssais commented Apr 4, 2020

Having built my own patched Firefox for ages, I see this sort of build failure all the time. A good signal it’s a memory issue is to build with fewer cores (--option cores). If it works with fewer cores, it was probably a memory issue. (With other packages, this would be more a sign of parallelism bugs, but with Firefox, it’s usually memory. We can be somewhat confident of that by using a smaller but still large number of cores. For example, I usually get a build failure with 48 cores, but it’s always fine with 24.)

@andir
Copy link
Member

andir commented Apr 4, 2020 via email

@alyssais
Copy link
Member

alyssais commented Apr 4, 2020 via email

@flokli
Copy link
Contributor

flokli commented Apr 4, 2020

I ran the build on a AMD EPYC 7401P with 128GB, restricted to 1 core. /tmp is not on tmpfs. I can't really believe this is purely high memory usage.

@alyssais
Copy link
Member

alyssais commented Apr 4, 2020 via email

@flokli
Copy link
Contributor

flokli commented Apr 4, 2020

You're right - I can reproduce the build failure on master…

This probably means the revert of rust-cbindgen didn't fix it, and it has already been flaky before that (just eventually somehow succeeded somewhere and was in the binary cache).

I quickly checked, building master firefox failed on hydra due to receiving a SIGKILL. I propose reverting the revert for now, and tracking this separately.

flokli added a commit that referenced this pull request Apr 4, 2020
This reverts commit 09dde57.

Apparently, the rust-cbindgen bump wasn't the cause for the firefox
build error reported in #83247
(we could reproduce the build error even after
09dde57 applied).

For some reason it must have succeeded on hydra, as it's in the cache,
tricking us in believing 76458f8 broke
it initially.

So the build seems flaky of some sort - we haven't yet determined
whether it's luck, compiling with the right CPUs or something else. :-/

There's still some investigation to be done
(#84283), but no need to keep an
ineffective revert around.
@flokli
Copy link
Contributor

flokli commented Apr 4, 2020

Reverted the revert in 1eae7fb, let's move the discussion over to #84283.

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

Successfully merging this pull request may close these issues.

None yet

6 participants