Source: rust-zune-jpeg Version: 0.4.14-1 Severity: minor Hi,
I noticed that the build of rust-zune-jpeg fails on reproduce.debian.net using a Intel Xeon X5690 but succeeds on my system with a i7-8565U: https://reproduce.debian.net/amd64/#librust-zune-jpeg-dev The relevant log is: process didn't exit successfully: `CARGO=/usr/bin/cargo CARGO_MANIFEST_DIR=/build/reproducible-path/rust-zune-jpeg-0.4.14 CARGO_MANIFEST_PATH=/build/reproducible-path/rust-zune-jpeg-0.4.14/Cargo.toml CARGO_PKG_AUTHORS='caleb <[email protected]>' CARGO_PKG_DESCRIPTION='A fast, correct and safe jpeg decoder' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='MIT OR Apache-2.0 OR Zlib' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=zune-jpeg CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/etemesi254/zune-image/tree/dev/crates/zune-jpeg' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.4.14 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=4 CARGO_PKG_VERSION_PATCH=14 CARGO_PKG_VERSION_PRE='' LD_LIBRARY_PATH='/build/reproducible-path/rust-zune-jpeg-0.4.14/target/x86_64-unknown-linux-gnu/debug/deps:/build/reproducible-path/rust-zune-jpeg-0.4.14/target/x86_64-unknown-linux-gnu/debug:/usr/lib/rustlib/x86_64-unknown-linux-gnu/lib' /build/reproducible-path/rust-zune-jpeg-0.4.14/target/x86_64-unknown-linux-gnu/debug/deps/zune_jpeg-9a5a94aed6dbf985` (signal: 4, SIGILL: illegal instruction) Attaching gdb gives: (gdb) bt #0 core::core_arch::x86::avx::_mm256_loadu_si256 (mem_addr=0x7ffff7ca514c) at /usr/src/rustc-1.85.0/library/core/src/../../stdarch/crates/core_arch/src/x86/avx.rs:1547 #1 0x000055555557027f in zune_jpeg::idct::avx2::idct_int_avx2_inner (in_vector=0x7ffff7ca514c, out_vector=..., stride=8) at src/idct/avx2.rs:80 #2 0x000055555557019d in zune_jpeg::idct::avx2::idct_avx2 (in_vector=0x7ffff7ca514c, out_vector=..., stride=8) at src/idct/avx2.rs:57 #3 0x00005555555785ec in zune_jpeg::idct::tests::do_idct_test1 () at src/idct.rs:99 #4 0x0000555555578c07 in zune_jpeg::idct::tests::do_idct_test1::{closure#0} () at src/idct.rs:93 #5 0x000055555556f4b6 in core::ops::function::FnOnce::call_once<zune_jpeg::idct::tests::do_idct_test1::{closure_env#0}, ()> () at /usr/src/rustc-1.85.0/library/core/src/ops/function.rs:250 #6 0x00005555555804bb in core::ops::function::FnOnce::call_once<fn() -> core::result::Result<(), alloc::string::String>, ()> () at library/core/src/ops/function.rs:250 #7 test::__rust_begin_short_backtrace<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>> (f=0x7ffff7ca514c) at library/test/src/lib.rs:632 #8 0x00005555555b2d92 in test::types::RunnableTest::run (self=...) at library/test/src/types.rs:145 #9 0x0000555555580622 in test::run_test_in_process::{closure#0} () at library/test/src/lib.rs:655 #10 core::panic::unwind_safe::{impl#23}::call_once<core::result::Result<(), alloc::string::String>, test::run_test_in_process::{closure_env#0}> (self=...) at library/core/src/panic/unwind_safe.rs:272 #11 std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>, core::result::Result<(), alloc::string::String>> (data=<error reading variable: Cannot access memory at address 0x0>) at library/std/src/panicking.rs:584 #12 std::panicking::try<core::result::Result<(), alloc::string::String>, core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>> (f=...) at library/std/src/panicking.rs:547 #13 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure_env#0}>, core::result::Result<(), alloc::string::String>> (f=...) at library/std/src/panic.rs:358 #14 test::run_test_in_process (id=..., desc=..., nocapture=<optimized out>, report_time=<optimized out>, runnable_test=..., monitor_ch=..., time_opts=...) at library/test/src/lib.rs:655 #15 0x0000555555582bba in test::run_test::{closure#0} () at library/test/src/lib.rs:576 #16 test::run_test::{closure#1} () at library/test/src/lib.rs:606 #17 std::sys::backtrace::__rust_begin_short_backtrace<test::run_test::{closure_env#1}, ()> (f=...) at library/std/src/sys/backtrace.rs:152 #18 0x0000555555598911 in std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure#0}<test::run_test::{closure_env#1}, ()> () at library/std/src/thread/mod.rs:564 #19 core::panic::unwind_safe::{impl#23}::call_once<(), std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>> (self=<error reading variable: Cannot access memory at address 0x18>) at library/core/src/panic/unwind_safe.rs:272 #20 std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>, ()> (data=<error reading variable: Cannot access memory at address 0x0>) at library/std/src/panicking.rs:584 #21 std::panicking::try<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>> (f=...) at library/std/src/panicking.rs:547 #22 std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<test::run_test::{closure_env#1}, ()>>, ()> (f=...) at library/std/src/panic.rs:358 #23 std::thread::{impl#0}::spawn_unchecked_::{closure#1}<test::run_test::{closure_env#1}, ()> () at library/std/src/thread/mod.rs:562 #24 core::ops::function::FnOnce::call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<test::run_test::{closure_env#1}, ()>, ()> () at library/core/src/ops/function.rs:250 #25 0x00005555555d494b in alloc::boxed::{impl#28}::call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global> (self=..., args=<optimized out>) at library/alloc/src/boxed.rs:1993 #26 alloc::boxed::{impl#28}::call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global> (self=0x55555565e340, args=<optimized out>) at library/alloc/src/boxed.rs:1993 #27 std::sys::pal::unix::thread::{impl#2}::new::thread_start (main=0x55555565e340) at library/std/src/sys/pal/unix/thread.rs:106 #28 0x00007ffff7d3babd in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #29 0x00007ffff7db97b8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 So it is using avx which is not in the Debian baseline: https://wiki.debian.org/ArchitectureSpecificsMemo#amd64 As far as I can see the executable is not shipped in the binary package and we can use a different machine for reproduce.d.n so setting to minor. Cheers Jochen

