[Pkg-rust-maintainers] Bug#1066055: rust-symphonia-core: FTBFS on i386 units::tests::verify_timebase panic

Peter Green plugwash at debian.org
Tue Mar 12 17:55:42 GMT 2024


> 
> rust-symphonia-core appears to FTBFS from an i386 sbuild chroot with a
> test 'units::tests::verify_timebase' panicking
> 
> ---- units::tests::verify_timebase stdout ----
> thread 'units::tests::verify_timebase' panicked at 'assertion failed:  
> `(left == right)`
>    left: `4503599627370496`,
>   right: `4503599627370497`', src/units.rs:257:9

The code in question is.

 >        assert_eq!(
 >            tb1.calc_timestamp(Time::new(14_073_748_835_532, 0.803125)),
 >            0x10_0000_0000_0001
 >        );

Given the appearance of a floating point number in the test, this is
almost certainly caused by a difference in floating point rounding
behaviour on x87 (which is used by the Debian i386 port) compared
to modern FPUs.

On modern FPUs, values are rounded to their "storage format" after
every operation. On x87 this is not the case, floating point
values have more precision when stored in registers than when
stored in memory. Usually this just results in calculations
being slightly more accurate than they would be on a modern
FPU, but it can become a problem if repeatability is more
important than accuracy, or if algorithms are carefully designed
to take account of rounding and then the rounding they expect
does not happen.

The questions this leaves are as follows.

1. Does this (and any other similar test failures) represent a
    significant behavioural difference that would render symphonia
    unwise to use on Debian i386? or does it just represent an
    overzealous test? This is something that should ideally be
    discussed with upstream, though I don't know if their response
    will be positive.
2. Is it worth expending effort on getting symphonia available on
    i386? to me that depends on what software is using or planning
    to use it. For a port in it's twilight years, keeping existing
    software working seems more important than making new software
    available.



More information about the Pkg-rust-maintainers mailing list