Discussion:
Bug#726733: av_register_all() segfaults on s390x in some cases (regression, causes FTBFS)
(too old to reply)
Florian Schlichting
2013-11-14 22:40:02 UTC
Permalink
Hi,

mpd also FTBFS since I enabled the build tests in 0.18 (no regression
here either).

Reinhard asked for a backtrace, this is what I get in the
sid_s390x-dchroot on zelenka:

***@zelenka ~/mpd-0.18.3 % gdb ./test/run_input core
GNU gdb (GDB) 7.6.1 (Debian 7.6.1-1)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "s390x-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/fsfs/mpd-0.18.3/test/run_input...done.
[New LWP 16192]
[New LWP 16193]

warning: Could not load shared library symbols for linux-vdso64.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/s390x-linux-gnu/libthread_db.so.1".
Core was generated by `./test/run_input test/tmp/configure.bz2'.
Program terminated with signal 11, Segmentation fault.
#0 0x000003ff800040b4 in ?? ()
(gdb) bt
#0 0x000003ff800040b4 in ?? ()
#1 0x000003fffbb2be68 in ?? () from /usr/lib/s390x-linux-gnu/libavcodec.so.54
#2 0x000003fffbb1be68 in ?? () from /usr/lib/s390x-linux-gnu/libavcodec.so.54
#3 0x000003fffbb07c34 in avcodec_register_all () from /usr/lib/s390x-linux-gnu/libavcodec.so.54
#4 0x000003fffcfae996 in av_register_all () from /usr/lib/s390x-linux-gnu/libavformat.so.54
#5 0x000000008000905e in input_ffmpeg_init (param=..., error=...) at src/input/FfmpegInputPlugin.cxx:78
#6 0x0000000080004ed4 in input_stream_global_init (error=...) at src/InputInit.cxx:85
#7 0x00000000800043bc in main (argc=<optimized out>, argv=0x3ffffaa98a8) at test/run_input.cxx:140

HTH,
Florian
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Reinhard Tartler
2014-01-15 04:10:02 UTC
Permalink
Post by Florian Schlichting
Hi,
mpd also FTBFS since I enabled the build tests in 0.18 (no regression
here either).
Reinhard asked for a backtrace, this is what I get in the
GNU gdb (GDB) 7.6.1 (Debian 7.6.1-1)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "s390x-linux-gnu".
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/fsfs/mpd-0.18.3/test/run_input...done.
[New LWP 16192]
[New LWP 16193]
warning: Could not load shared library symbols for linux-vdso64.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/s390x-linux-gnu/libthread_db.so.1".
Core was generated by `./test/run_input test/tmp/configure.bz2'.
Program terminated with signal 11, Segmentation fault.
#0 0x000003ff800040b4 in ?? ()
(gdb) bt
#0 0x000003ff800040b4 in ?? ()
#1 0x000003fffbb2be68 in ?? () from /usr/lib/s390x-linux-gnu/libavcodec.so.54
#2 0x000003fffbb1be68 in ?? () from /usr/lib/s390x-linux-gnu/libavcodec.so.54
#3 0x000003fffbb07c34 in avcodec_register_all () from /usr/lib/s390x-linux-gnu/libavcodec.so.54
#4 0x000003fffcfae996 in av_register_all () from /usr/lib/s390x-linux-gnu/libavformat.so.54
#5 0x000000008000905e in input_ffmpeg_init (param=..., error=...) at src/input/FfmpegInputPlugin.cxx:78
#6 0x0000000080004ed4 in input_stream_global_init (error=...) at src/InputInit.cxx:85
#7 0x00000000800043bc in main (argc=<optimized out>, argv=0x3ffffaa98a8) at test/run_input.cxx:140
Unfortunately, the interesting parts are missing because of lack of
debug symbols. However, I was able to reproduce this issue by simply
invoking "avconv" (without any parameters):


(gdb) bt full
#0 0x000003ff80006650 in ?? ()
No symbol table info available.
#1 0x000003fffc9f8502 in ff_init_vlc_sparse
(vlc=***@entry=0x3fffcf655c0 <spectral_coeff_tab>,
nb_bits=***@entry=9, nb_codes=***@entry=9,
bits=***@entry=0x3fffcdc5988 <huffbits1>,
bits_wrap=***@entry=1, bits_size=1, codes=0x3fffcdc5992
<huffcode1>, codes_wrap=1, codes_size=1, symbols=0x0,
symbols_wrap=0, symbols_size=0, flags=4) at
/build/libav-9DWbf4/libav-9.10/libavcodec/bitstream.c:283
buf = <optimized out>
i = <optimized out>
j = <optimized out>
ret = <optimized out>
#2 0x000003fffc9ec5ca in atrac3_init_static_data (codec=<optimized
out>) at /build/libav-9DWbf4/libav-9.10/libavcodec/atrac3.c:855
i = 0
#3 0x000003fffc9d762c in avcodec_register_all () at
/build/libav-9DWbf4/libav-9.10/libavcodec/allcodecs.c:278
initialized = 1
#4 0x00000000800068a0 in main (argc=<optimized out>,
argv=0x3ffffc1d498) at /build/libav-9DWbf4/libav-9.10/avconv.c:2358
ret = <optimized out>
ti = <optimized out>
(gdb)

at libavcodec/bitstream.c:283, there is a call to "av_malloc", but the
fact that the backtrace does not show anything related to the
implementation in libavutil/mem.c makes me uneasy.

BTW, the same problem still exists in libav 10~alpha1 from experimental.
--
regards,
Reinhard
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Reinhard Tartler
2014-01-15 04:20:02 UTC
Permalink
Mostly for my own reference, I noticed this from the buildlog
https://buildd.debian.org/status/fetch.php?pkg=libav&arch=s390x&ver=6%3A9.10-2&stamp=1388850961:

env LD_LIBRARY_PATH="/usr/lib/s390x-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot:/«PKGBUILDDIR»/debian/tmp/usr/lib/s390x-linux-gnu"
\
debian/tmp/usr/bin/avconv -formats | tee formats-s390x.txt
Segmentation fault
env LD_LIBRARY_PATH="/usr/lib/s390x-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot:/«PKGBUILDDIR»/debian/tmp/usr/lib/s390x-linux-gnu"
\
debian/tmp/usr/bin/avconv -codecs | tee codecs.txt
Segmentation fault


This is supposed to fail the build, but doesn't. I guess the | tee is
hiding the problem.
--
regards,
Reinhard
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Reinhard Tartler
2014-02-25 13:20:02 UTC
Permalink
tags 726733 help
stop
Post by Reinhard Tartler
Mostly for my own reference, I noticed this from the buildlog
env LD_LIBRARY_PATH="/usr/lib/s390x-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot:/«PKGBUILDDIR»/debian/tmp/usr/lib/s390x-linux-gnu"
\
debian/tmp/usr/bin/avconv -formats | tee formats-s390x.txt
Segmentation fault
env LD_LIBRARY_PATH="/usr/lib/s390x-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot:/«PKGBUILDDIR»/debian/tmp/usr/lib/s390x-linux-gnu"
\
debian/tmp/usr/bin/avconv -codecs | tee codecs.txt
Segmentation fault
This is supposed to fail the build, but doesn't. I guess the | tee is
hiding the problem.
I've again tried to reproduce this issue today, but was unable to do
so on zelenka, avconv worked just fine in the s390x chroot. This makes
me wonder if zelenka was maybe configured differently?

In any case, looking at the buildlogs on s390x on
https://buildd.debian.org/status/logs.php?pkg=libav&arch=s390x, it
becomes clear that libav never worked on s390x (while it did on s390;
look for the string "segmentation fault" in the build log). To make
this clearer, I've fixed the package to no longer hide the segmenation
fault, that is, make the package build fail
(https://buildd.debian.org/status/fetch.php?pkg=libav&arch=s390x&ver=6%3A9.11-2&stamp=1393250404).

I'm therefore going to ask ftp-master to remove the broken binaries
from unstable, as like this bug shows, the s390x binaries are severly
broken.

Nevertheless, dear s390x porters, please help with fixing this issue.

Thanks.
--
regards,
Reinhard
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Bastian Blank
2014-03-01 18:10:02 UTC
Permalink
Control: tag -1 confirmed
Post by Reinhard Tartler
Nevertheless, dear s390x porters, please help with fixing this issue.
Some digging shows that relocations are broken in the version running
via yorck:

| Dump of assembler code for function atrac3_init_static_data:
| 0x000003fffcfcf51c <+640>: brasl %r14,0x3ff8002310c

No library is loaded in this location.

In a working binary this jumps to sinl:

| Dump of assembler code for function atrac3_init_static_data:
| 0x000003fffd20251c <+640>: brasl %r14,0x3fffcf25a54 <sinl>

There is a libm loaded in this location:

| 0x000003fffcf12e50 0x000003fffcf565d0 Yes (*) /lib/s390x-linux-gnu/libm.so.6

Bastian
--
Where there's no emotion, there's no motive for violence.
-- Spock, "Dagger of the Mind", stardate 2715.1
--
To UNSUBSCRIBE, email to debian-bugs-dist-***@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact ***@lists.debian.org
Loading...