Learn more about these different git repos.
Other Git URLs
Opening this here to have a starting point for investigation into this issue. Can move this discussion to the necessary Fedora component in Bugzilla if needed (llvm or gcc maybe).
rust-coreos-installer [1] and rust-afterburn [2] builds for f31 have failed for the s390x architecture with a similar segfault error.
rust-coreos-installer
rust-afterburn
s390x
[1] https://koji.fedoraproject.org/koji/taskinfo?taskID=44127105 [2] https://koji.fedoraproject.org/koji/taskinfo?taskID=44128810
Pasting the error for Afterburn:
Caused by: process didn't exit successfully: `/usr/bin/rustc --crate-name afterburn --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto -C metadata=73a73fc7b740980f -C extra-filename=-73a73fc7b740980f --out-dir /builddir/build/BUILD/afterburn-4.3.3/target/release/deps -L dependency=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps --extern base64=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libbase64-c4b58e9301d69f24.rlib --extern byteorder=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libbyteorder-82e61dbd94b89ec3.rlib --extern cfg_if=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libcfg_if-e198cb677c585071.rlib --extern clap=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libclap-a8462682cd1f2060.rlib --extern error_chain=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/liberror_chain-1544eede5fd3beb5.rlib --extern hostname=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libhostname-c20cfd8af745b388.rlib --extern ipnetwork=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libipnetwork-23d03482a966f513.rlib --extern libsystemd=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/liblibsystemd-6df9558582674c1a.rlib --extern maplit=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libmaplit-355b98f6d64698ad.rlib --extern mime=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libmime-d5a03e88567da316.rlib --extern nix=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libnix-64a1b75eac8ad288.rlib --extern openssh_keys=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libopenssh_keys-768af957c4f547c2.rlib --extern openssl=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libopenssl-4e6082ec1cca92b9.rlib --extern pnet_base=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libpnet_base-819ca0f8edfca851.rlib --extern pnet_datalink=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libpnet_datalink-3332a7df20932644.rlib --extern reqwest=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libreqwest-a4f57c53f6765c18.rlib --extern serde=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libserde-a5e5ca42b8687b65.rlib --extern serde_xml_rs=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libserde_xml_rs-e671d9f0c1b55c1e.rlib --extern serde_derive=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libserde_derive-f26fc00b62a922c6.so --extern serde_json=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libserde_json-e2aced8ce2d8ca9c.rlib --extern slog=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libslog-33180a4ee712dc7d.rlib --extern slog_async=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libslog_async-80add9b7e8a69a42.rlib --extern slog_scope=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libslog_scope-6f71cf2b6f4c7418.rlib --extern slog_term=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libslog_term-d9c5c87ad57c476d.rlib --extern tempfile=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libtempfile-b3d5ed77fd98eae7.rlib --extern users=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libusers-ac90c10f4265cadc.rlib --extern vmw_backdoor=/builddir/build/BUILD/afterburn-4.3.3/target/release/deps/libvmw_backdoor-5bde53b1f206bf98.rlib -Copt-level=3 -Cdebuginfo=2 -Clink-arg=-Wl,-z,relro,-z,now -Ccodegen-units=1 --cap-lints=warn -L native=/builddir/build/BUILD/afterburn-4.3.3/target/release/build/backtrace-sys-842aca0450412996/out` (signal: 11, SIGSEGV: invalid memory reference)
It seems this is fixed in F32 and F33 as other builds there have been successful. Likely updating part of the rust compiler toolchain in F31 will fix this.
From listings in Koji, F32 and F33 have gcc-10.0.1 whereas F31 has gcc-9.3.1. F32 and F33 have llvm-10.0.0 whereas F31 has llvm-9.0.1-5. Perhaps there is a fix in the newer llvm or gcc that can be backported to F31.
Will investigate further.
cc @dustymabe @ignatenkobrain
I strongly suspect LLVM 9/10 is the relevant difference. The next step would be to get a backtrace from that SIGSEGV. I also notice that these are both enabling LTO -- as a workaround you could see if they can build without that.
I've reproduced this, and in GDB I'm seeing it's at CString::new with a &[u8] slice of length 25, but pointer 0x1. This comes from the compiler's fat_lto function, but we don't have full debuginfo on s390x due to builder OOM, so I don't know where that pointer came from yet.
CString::new
&[u8]
0x1
fat_lto
I've confirmed that disabling LTO does compile afterburn successfully. It's also fine with LTO on Rust 1.42, even with the same LLVM 9 library. And as mentioned before, we're not seeing any issues on LLVM 10. I'll continue trying to narrow this down...
https://bugzilla.redhat.com/show_bug.cgi?id=1837660
See the update in https://bodhi.fedoraproject.org/updates/FEDORA-2020-d8bba51d6a
I also added this as a buildroot override, so feel free to use it right away!
Metadata Update from @jistone: - Issue status updated to: Closed (was: Open)
Thank you very much @jistone for the thorough investigation and landing the fix!
wow @jistone - excellent work!
Log in to comment on this ticket.