[Reproducible-builds] Bug#833088: xine-list: non-deterministic output (0xB8), valgrind warning

Daniel Shahaf danielsh at apache.org
Sun Jul 31 18:21:04 UTC 2016


Package: libxine2-bin
Version: 1.2.6-1.1+b1
Severity: normal
Tags: upstream
User: reproducible-builds at lists.alioth.debian.org
Usertags: randomness toolchain
Control: affects -1 xine-ui

Dear Maintainer,

xine-list-1.2 behaves non-deterministically:

[[[
# while true; do echo $((++i)):; xine-list-1.2 | xxd; done 
1:
2:
3:
4:
5:
6:
7:
8:
00000000: b83b                                     .;
9:
10:
11:
12:
13:
⋮
48:
49:
^C
]]]

When xine-list-1.2 does have output, B8 3B is the most common output,
but not the only one; some other values were:

00000000: b81b b13b                                ...;
00000000: b82b 7c7f 3b                             .+|.;
00000000: b83b                                     .;
00000000: b83b 1cd1 3b                             .;..;
00000000: b84b 3b                                  .K;
00000000: b86b 3b                                  .k;
00000000: b86b b4e9 3b                             .k..;
00000000: b8ab 4a3b                                ..J;
00000000: b8cb 3b                                  ..;
00000000: b8db 3b0a 3b                             ..;.;

This may be related to the following valgrind warning:

[[[
# valgrind xine-list-1.2
==3386== Memcheck, a memory error detector
==3386== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==3386== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==3386== Command: xine-list-1.2
==3386== 
==3386== Conditional jump or move depends on uninitialised value(s)
==3386==    at 0x400B6E: ??? (in /usr/bin/xine-list-1.2)
==3386==    by 0x52E672F: (below main) (libc-start.c:291)
==3386== 
xine-list: failed to read types info
==3386== 
==3386== HEAP SUMMARY:
==3386==     in use at exit: 43,508 bytes in 85 blocks
==3386==   total heap usage: 192 allocs, 107 frees, 2,155,513 bytes allocated
==3386== 
==3386== LEAK SUMMARY:
==3386==    definitely lost: 1 bytes in 1 blocks
==3386==    indirectly lost: 0 bytes in 0 blocks
==3386==      possibly lost: 272 bytes in 1 blocks
==3386==    still reachable: 43,235 bytes in 83 blocks
==3386==         suppressed: 0 bytes in 0 blocks
==3386== Rerun with --leak-check=full to see details of leaked memory
==3386== 
==3386== For counts of detected and suppressed errors, rerun with: -v
==3386== Use --track-origins=yes to see where uninitialised values come from
==3386== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
]]]

(The "failed to read types info" error message and the "1 block
definitely lost" leak summary occur every time; the conditional jump or
move only happens sometimes.)

Finally, I believe this issue may be the reason the 'xine-ui' package is
not reproducible:
..
    https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/xine-ui.html
..
That diff currently shows the files are identical, except that the left
file has B8 3B and the right file B8 8B 66 3B, , exactly at the location
where the build might call xine-list:
..
    https://sources.debian.net/src/xine-ui/0.99.9-1.2/misc/desktops/Makefile.am/#L31-L43

Cheers,

Daniel

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.6.0-1-amd64 (SMP w/1 CPU core)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libxine2-bin depends on:
ii  libavutil55   7:3.1.1-3
ii  libc6         2.23-4
ii  libfreetype6  2.6.3-3+b1
ii  zlib1g        1:1.2.8.dfsg-2+b1

libxine2-bin recommends no packages.

libxine2-bin suggests no packages.

-- no debconf information



More information about the Reproducible-builds mailing list