NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.51k stars 13.69k forks source link

Build failure: pkgsi686Linux.ffmpeg_5 #231024

Closed JJJollyjim closed 3 weeks ago

JJJollyjim commented 1 year ago

Steps To Reproduce

Build pkgsi686Linux.ffmpeg_5 on latest nixos-unstable. This appears to be a test failure.

Build log

@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/iw7pybkbbwghn0hs23ayzwii74bry81m-ffmpeg
source root is ffmpeg
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
patching script interpreter paths in .
./compat/solaris/make_sunver.pl: interpreter directive changed from "#!/usr/bin/env perl" to "/nix/store/lj0hah8m75hwqldip8jvrkfgdb9mwwgn-perl-5.36.0/bin/perl"
./compat/windows/makedef: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./compat/windows/mslink: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./configure: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./doc/doxy-wrapper.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./ffbuild/pkgconfig_generate.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./ffbuild/version.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tests/copycooker.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tests/fate/source-check.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tests/fate-run.sh: interpreter directive changed from "#! /bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tests/fate.sh: interpreter directive changed from "#! /bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/bisect-create: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/cl2c: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/clean-diff: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/dvd2concat: interpreter directive changed from "#!/usr/bin/env perl" to "/nix/store/lj0hah8m75hwqldip8jvrkfgdb9mwwgn-perl-5.36.0/bin/perl"
./tools/gen-rc: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/libav-merge-next-commit: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/make_chlayout_test: interpreter directive changed from "#!/usr/bin/env perl" to "/nix/store/lj0hah8m75hwqldip8jvrkfgdb9mwwgn-perl-5.36.0/bin/perl"
./tools/missing_codec_desc: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/murge: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/patcheck: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/plotframes: interpreter directive changed from "#!/usr/bin/env perl" to "/nix/store/lj0hah8m75hwqldip8jvrkfgdb9mwwgn-perl-5.36.0/bin/perl"
./tools/target_dec_fate.sh: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
./tools/unwrap-diff: interpreter directive changed from "#!/bin/sh" to "/nix/store/dv8vj330n34fa0wxyp8d0qpqjvsn8bpq-bash-5.2-p15/bin/sh"
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
configure flags: --disable-static --prefix=/nix/store/k075fl7p2sffn8z9zwnpm8f4mxcsqjv4-ffmpeg-5.1.3 --target_os=linux --arch=i686 --pkg-config=pkg-config --enable-gpl --enable-version3 --disable-nonfree --enable-shared --enable-pic --disable-small --enable-runtime-cpudetect --disable->
install prefix            /nix/store/k075fl7p2sffn8z9zwnpm8f4mxcsqjv4-ffmpeg-5.1.3
source path               .
C compiler                gcc
C library                 glibc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
standalone assembly       yes
x86 assembler             yasm
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AESNI enabled             yes
AVX enabled               yes
AVX2 enabled              yes
AVX-512 enabled           yes
AVX-512ICL enabled        yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes
CMOV is fast              no
EBX available             yes
EBP available             yes
debug symbols             no
strip symbols             no
optimize for size         no
optimizations             yes
static                    no
shared                    yes
postprocessing support    yes
network support           yes
threading support         pthreads
safe bitstream reader     yes
...skipping...
TEST    seek-lavf-aiff
TEST    seek-acodec-mp2
TEST    seek-lavf-al
TEST    seek-lavf-au
TEST    seek-lavf-mmf
TEST    seek-lavf-ul
TEST    seek-lavf-wav
TEST    seek-lavf-ogg
GEN     tests/vsynth1/00.pgm
TEST    vsynth2-asv1
TEST    vsynth2-asv2
GEN     tests/data/vsynth1.yuv
TEST    vsynth2-vc2-420p
TEST    vsynth2-ffv1
TEST    vsynth2-ffv1-v0
TEST    vsynth2-ffv1-v3-yuv420p
TEST    vsynth2-ffv1-2pass
TEST    vsynth2-ffvhuff
TEST    vsynth2-flv
TEST    vsynth2-h261
TEST    vsynth2-h261-trellis
TEST    vsynth2-h263
TEST    vsynth2-h263-obmc
TEST    vsynth2-h263p
TEST    vsynth2-ljpeg
TEST    vsynth2-mpeg1
TEST    vsynth2-mpeg1b
TEST    vsynth2-mpeg2
TEST    vsynth2-mpeg2-422
TEST    vsynth2-mpeg2-idct-int
TEST    vsynth2-mpeg2-ilace
TEST    vsynth2-mpeg2-ivlc-qprd
TEST    vsynth2-mpeg2-thread
TEST    vsynth2-mpeg2-thread-ivlc
TEST    vsynth2-mpeg4
TEST    vsynth2-mpeg4-rc
TEST    vsynth2-mpeg4-adv
TEST    vsynth2-mpeg4-qprd
TEST    vsynth2-mpeg4-adap
TEST    vsynth2-mpeg4-qpel
TEST    vsynth2-mpeg4-thread
TEST    vsynth2-mpeg4-error
TEST    vsynth2-mpeg4-nr
TEST    vsynth2-mpeg4-nsse
TEST    vsynth2-msmpeg4v2
TEST    vsynth2-msmpeg4
TEST    vsynth2-rv10
TEST    vsynth2-rv20
TEST    vsynth2-snow-ll
TEST    vsynth2-wmv1
TEST    vsynth2-wmv2
TEST    vsynth2-yuv
TEST    vsynth2-yuv4
TEST    vsynth2-amv
TEST    vsynth2-cinepak
TEST    vsynth2-cljr
TEST    vsynth2-vc2-420p10
TEST    vsynth2-vc2-420p12
--- ./tests/ref/vsynth/vsynth2-rv10     1970-01-01 00:00:01.000000000 +0000
+++ tests/data/fate/vsynth2-rv10        2023-05-10 06:38:15.750381772 +0000
@@ -1,4 +1,4 @@
 45a1e6800af36b7e2d42cadd2b6d1447 *tests/data/fate/vsynth2-rv10.rm
 210679 tests/data/fate/vsynth2-rv10.rm
-d77291a0611eeec0667bbc3aba7190b8 *tests/data/fate/vsynth2-rv10.out.rawvideo
+8a1bd4abe063c625d48661f62798d18f *tests/data/fate/vsynth2-rv10.out.rawvideo
 stddev:    6.12 PSNR: 32.39 MAXDIFF:   83 bytes:  7603200/  7603200
TEST    vsynth2-vc2-422p
TEST    vsynth2-vc2-422p10
Test vsynth2-rv10 failed. Look at tests/data/fate/vsynth2-rv10.err for details.
make: *** [tests/Makefile:305: fate-vsynth2-rv10] Error 1
make: *** Waiting for unfinished jobs....

Additional context

This is a dependency of steam.

Notify maintainers

@Atemu

Metadata

Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.2.11, NixOS, 23.05 (Stoat), 23.05pre476634.5d91a896449`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - channels(root): `"nixos"`
 - channels(jamie): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`
JJJollyjim commented 1 year ago

Update: on like the 4th rebuild of the same .drv this succeeded, I guess it's intermittent?

Atemu commented 1 year ago

@JJJollyjim which filesystem is your build dir in?

JJJollyjim commented 1 year ago

btrfs

Atemu commented 1 year ago

I can't debug µArch differences like this and I'm not willing to spend significant time on supporting a dead platform.

I'll unsubscribe from here, ping me if I can help with something specific.

jleightcap commented 1 year ago

Reproduced with github:nixos/nixpkgs/master#pkgsi686Linux.ffmpeg_5.

The test log shows the issue being with time being impure:

--- ./tests/ref/vsynth/vsynth2-rv10     1970-01-01 00:00:01.000000000 +0000
+++ tests/data/fate/vsynth2-rv10        2023-05-10 06:38:15.750381772 +0000

If you just want steam to work, disabling this test (or just the whole checkPhase) may be the path of least resistance.

A proper fix would be to root cause why i686 fails this test while x64 (presumably) does not.

jleightcap commented 1 year ago

For root causing, work backwards from around http://git.ffmpeg.org/gitweb/ffmpeg.git/blob/963937e408fc68b5925f938a253cfff1d506f784:/tests/ref/vsynth/vsynth2-rv10.

jopejoe1 commented 3 weeks ago

Closing as we droped ffmpeg_5 support in #326618