Bug#713856: libavutil51: Pulseaudio provokes SIGFPE in libavutil

Dario Ernst daddel9 at kanojo.de
Fri Jul 12 21:05:35 UTC 2013


On 07/12/2013 10:39 PM, Reinhard Tartler wrote:
> Are you absolutely sure that you have libav-dbg installed? I would
> really need to see the locals and the stack frame of frames #0 and #1.
> The source of the code in question can be seen here:

Actually i have to admit: i seem quite dumb! I accidentally ran the gdb
on the wrong box again before pasting, not noticing that there were
missing symbols in what i pasted. Sorry, thats my bad! Below is the
(hopefully finally correct) gdb run:

 daddel9/ > gdb pulseaudio
GNU gdb (GDB) 7.6-debian
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 "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/pulseaudio...Reading symbols from
/usr/lib/debug/usr/bin/pulseaudio...done.
done.
(gdb) run
Starting program: /usr/bin/pulseaudio
warning: no loadable sections found in added symbol-file system-supplied
DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
process 6725 is executing new program: /usr/bin/pulseaudio
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
W: [pulseaudio] pid.c: Stale PID file, overwriting.

Program received signal SIGFPE, Arithmetic exception.
0x00007fffeb9dc42a in av_samples_get_buffer_size
(linesize=linesize at entry=0x0, nb_channels=nb_channels at entry=6,
nb_samples=nb_samples at entry=1536,
sample_fmt=sample_fmt at entry=AV_SAMPLE_FMT_S16,
    align=align at entry=0) at
/build/libav-wfhxN3/libav-0.8.7/libavutil/samplefmt.c:108
108     /build/libav-wfhxN3/libav-0.8.7/libavutil/samplefmt.c: No such
file or directory.
(gdb) bt
#0  0x00007fffeb9dc42a in av_samples_get_buffer_size
(linesize=linesize at entry=0x0, nb_channels=nb_channels at entry=6,
nb_samples=nb_samples at entry=1536,
    sample_fmt=sample_fmt at entry=AV_SAMPLE_FMT_S16, align=align at entry=0)
at /build/libav-wfhxN3/libav-0.8.7/libavutil/samplefmt.c:108
#1  0x00007fffeb9dc5c3 in av_samples_alloc (audio_data=0x7b7b80,
linesize=0x7b7ba0, nb_channels=6, nb_samples=1536,
sample_fmt=AV_SAMPLE_FMT_S16, align=0)
    at /build/libav-wfhxN3/libav-0.8.7/libavutil/samplefmt.c:143
#2  0x00007fffeca7022f in ?? () from
/usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_a52.so
#3  0x00007fffecc8526d in pa_alsa_set_hw_params (pcm_handle=0x78b490,
ss=ss at entry=0x7fffffffd290,
period_size=period_size at entry=0x7fffffffd280,
buffer_size=buffer_size at entry=0x7fffffffd288,
    tsched_size=tsched_size at entry=0, use_mmap=use_mmap at entry=0x0,
use_tsched=use_tsched at entry=0x0,
require_exact_channel_number=require_exact_channel_number at entry=true)
    at modules/alsa/alsa-util.c:319
#4  0x00007fffecc85c77 in pa_alsa_open_by_device_string
(device=device at entry=0x7782f0 "a52:0", dev=dev at entry=0x0,
ss=ss at entry=0x7fffffffd290, map=map at entry=0x7fffffffd2a0,
mode=mode at entry=0,
    period_size=period_size at entry=0x7fffffffd280,
buffer_size=buffer_size at entry=0x7fffffffd288,
tsched_size=tsched_size at entry=0, use_mmap=use_mmap at entry=0x0,
use_tsched=use_tsched at entry=0x0,

require_exact_channel_number=require_exact_channel_number at entry=true) at
modules/alsa/alsa-util.c:680
#5  0x00007fffecc85f68 in pa_alsa_open_by_template (template=<optimized
out>, dev_id=dev_id at entry=0x67b900 "0", dev=dev at entry=0x0,
ss=ss at entry=0x7fffffffd290, map=map at entry=0x7fffffffd2a0,
    mode=mode at entry=0, period_size=period_size at entry=0x7fffffffd280,
buffer_size=buffer_size at entry=0x7fffffffd288,
tsched_size=tsched_size at entry=0, use_mmap=use_mmap at entry=0x0,
    use_tsched=use_tsched at entry=0x0,
require_exact_channel_number=require_exact_channel_number at entry=true) at
modules/alsa/alsa-util.c:756
#6  0x00007fffecc8da77 in mapping_open_pcm (m=m at entry=0x685960,
ss=ss at entry=0x61d0fc, dev_id=dev_id at entry=0x67b900 "0",
mode=mode at entry=0, default_n_fragments=default_n_fragments at entry=4,
    default_fragment_size_msec=default_fragment_size_msec at entry=25) at
modules/alsa/alsa-mixer.c:4245
#7  0x00007fffecc978ea in pa_alsa_profile_set_probe (ps=0x67f4e0,
dev_id=0x67b900 "0", ss=0x61d0fc, default_n_fragments=4,
default_fragment_size_msec=25) at modules/alsa/alsa-mixer.c:4330
#8  0x00007fffed1b321f in module_alsa_card_LTX_pa__init (m=0x678500) at
modules/alsa/module-alsa-card.c:697
#9  0x00007ffff7b7419b in pa_module_load (c=0x61cfe0,
name=name at entry=0x7fffed5ca19b "module-alsa-card",
    argument=0x678be0 "device_id=\"0\" name=\"pci-0000_00_1b.0\"
card_name=\"alsa_card.pci-0000_00_1b.0\" namereg_fail=false tsched=yes
fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes
card_properties=\"module-u"...) at pulsecore/module.c:115
#10 0x00007fffed5c8a37 in verify_access (u=0x6749b0, d=0x6783f0) at
modules/module-udev-detect.c:341
#11 0x00007fffed5c9cb7 in process_path (path=<optimized out>,
u=0x6749b0) at modules/module-udev-detect.c:489
#12 module_udev_detect_LTX_pa__init (m=<optimized out>) at
modules/module-udev-detect.c:797
#13 0x00007ffff7b7419b in pa_module_load (c=c at entry=0x61cfe0,
name=name at entry=0x624ac0 "module-udev-detect", argument=0x0) at
pulsecore/module.c:115
#14 0x00007ffff7b6372a in pa_cli_command_load (c=0x61cfe0, t=0x622830,
buf=0x618c60, fail=0x617095) at pulsecore/cli-command.c:441
#15 0x00007ffff7b69282 in pa_cli_command_execute_line_stateful
(c=c at entry=0x61cfe0, s=s at entry=0x7fffffffd890 "load-module
module-udev-detect", buf=buf at entry=0x618c60, fail=fail at entry=0x617095,
    ifstate=ifstate at entry=0x7fffffffd88c) at pulsecore/cli-command.c:2108
#16 0x00007ffff7b69b91 in pa_cli_command_execute_file_stream
(c=c at entry=0x61cfe0, f=f at entry=0x622980, buf=buf at entry=0x618c60,
fail=fail at entry=0x617095) at pulsecore/cli-command.c:2148
#17 0x000000000040796e in main (argc=<optimized out>, argv=<optimized
out>) at daemon/main.c:1084
(gdb) bt full
#0  0x00007fffeb9dc42a in av_samples_get_buffer_size
(linesize=linesize at entry=0x0, nb_channels=nb_channels at entry=6,
nb_samples=nb_samples at entry=1536,
    sample_fmt=sample_fmt at entry=AV_SAMPLE_FMT_S16, align=align at entry=0)
at /build/libav-wfhxN3/libav-0.8.7/libavutil/samplefmt.c:108
        line_size = <optimized out>
        sample_size = 2
        planar = 1
#1  0x00007fffeb9dc5c3 in av_samples_alloc (audio_data=0x7b7b80,
linesize=0x7b7ba0, nb_channels=6, nb_samples=1536,
sample_fmt=AV_SAMPLE_FMT_S16, align=0)
    at /build/libav-wfhxN3/libav-0.8.7/libavutil/samplefmt.c:143
        buf = <optimized out>
        size = <optimized out>
#2  0x00007fffeca7022f in ?? () from
/usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_a52.so
No symbol table info available.
#3  0x00007fffecc8526d in pa_alsa_set_hw_params (pcm_handle=0x78b490,
ss=ss at entry=0x7fffffffd290,
period_size=period_size at entry=0x7fffffffd280,
buffer_size=buffer_size at entry=0x7fffffffd288,
    tsched_size=tsched_size at entry=0, use_mmap=use_mmap at entry=0x0,
use_tsched=use_tsched at entry=0x0,
require_exact_channel_number=require_exact_channel_number at entry=true)
    at modules/alsa/alsa-util.c:319
        max_frames = 15360
        ret = <optimized out>
        hwparams = 0x7fffffffce00
        hwparams_copy = 0x7fffffffcb90
        dir = 0
        _period_size = 1199
        _buffer_size = 4797
        _use_mmap = <optimized out>
        _use_tsched = <optimized out>
        _ss = {format = PA_SAMPLE_S16LE, rate = 48000, channels = 6 '\006'}
        __func__ = "pa_alsa_set_hw_params"
        __PRETTY_FUNCTION__ = "pa_alsa_set_hw_params"
#4  0x00007fffecc85c77 in pa_alsa_open_by_device_string
(device=device at entry=0x7782f0 "a52:0", dev=dev at entry=0x0,
ss=ss at entry=0x7fffffffd290, map=map at entry=0x7fffffffd2a0,
mode=mode at entry=0,
    period_size=period_size at entry=0x7fffffffd280,
buffer_size=buffer_size at entry=0x7fffffffd288,
tsched_size=tsched_size at entry=0, use_mmap=use_mmap at entry=0x0,
use_tsched=use_tsched at entry=0x0,

require_exact_channel_number=require_exact_channel_number at entry=true) at
modules/alsa/alsa-util.c:680
        err = <optimized out>
        d = 0x76ef00 "a52:0"
        pcm_handle = 0x78b490
---Type <return> to continue, or q <return> to quit---
        reformat = <optimized out>
        __func__ = "pa_alsa_open_by_device_string"
        __PRETTY_FUNCTION__ = "pa_alsa_open_by_device_string"
#5  0x00007fffecc85f68 in pa_alsa_open_by_template (template=<optimized
out>, dev_id=dev_id at entry=0x67b900 "0", dev=dev at entry=0x0,
ss=ss at entry=0x7fffffffd290, map=map at entry=0x7fffffffd2a0,
    mode=mode at entry=0, period_size=period_size at entry=0x7fffffffd280,
buffer_size=buffer_size at entry=0x7fffffffd288,
tsched_size=tsched_size at entry=0, use_mmap=use_mmap at entry=0x0,
    use_tsched=use_tsched at entry=0x0,
require_exact_channel_number=require_exact_channel_number at entry=true) at
modules/alsa/alsa-util.c:756
        d = 0x7782f0 "a52:0"
        pcm_handle = <optimized out>
        i = 0x685f10
#6  0x00007fffecc8da77 in mapping_open_pcm (m=m at entry=0x685960,
ss=ss at entry=0x61d0fc, dev_id=dev_id at entry=0x67b900 "0",
mode=mode at entry=0, default_n_fragments=default_n_fragments at entry=4,
    default_fragment_size_msec=default_fragment_size_msec at entry=25) at
modules/alsa/alsa-mixer.c:4245
        try_ss = {format = PA_SAMPLE_S16LE, rate = 44100, channels = 6
'\006'}
        try_map = {channels = 6 '\006', map =
{PA_CHANNEL_POSITION_FRONT_LEFT, PA_CHANNEL_POSITION_FRONT_RIGHT,
PA_CHANNEL_POSITION_REAR_LEFT, PA_CHANNEL_POSITION_REAR_RIGHT,
            PA_CHANNEL_POSITION_FRONT_CENTER, PA_CHANNEL_POSITION_LFE,
PA_CHANNEL_POSITION_INVALID <repeats 26 times>}}
        try_period_size = 1102
        try_buffer_size = 4408
#7  0x00007fffecc978ea in pa_alsa_profile_set_probe (ps=0x67f4e0,
dev_id=0x67b900 "0", ss=0x61d0fc, default_n_fragments=4,
default_fragment_size_msec=25) at modules/alsa/alsa-mixer.c:4330
        idx = 0
        state = 0x6b5660
        p = 0x6b3b90
        last = <optimized out>
        m = 0x685960
        broken_inputs = 0x6dcb70
        broken_outputs = 0x6dcfa0
        __func__ = "pa_alsa_profile_set_probe"
        __PRETTY_FUNCTION__ = "pa_alsa_profile_set_probe"
#8  0x00007fffed1b321f in module_alsa_card_LTX_pa__init (m=0x678500) at
modules/alsa/module-alsa-card.c:697
        data = {
          name = 0x678be0 "device_id=\"0\" name=\"pci-0000_00_1b.0\"
card_name=\"alsa_card.pci-0000_00_1b.0\" namereg_fail=false tsched=yes
fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes
card_properties=\"module-u"..., proplist = 0x7ffff7bb8cf0, driver =
0x6791f0 "\020 at g", module = 0x7fffed5ca19b, profiles = 0x678be0,
          active_profile = 0x678d40 "_latency_range=no ignore_dB=no
deferred_volume=yes use_ucm=yes
card_properties=\"module-udev-detect.discovered=1\"", ports = 0x68c660,
namereg_fail = true,
          save_profile = true}
---Type <return> to continue, or q <return> to quit---
        ma = 0x678580
        ignore_dB = false
        reserve = 0x67ba00
        description = <optimized out>
        profile = 0x0
        fn = <optimized out>
        namereg_fail = false
        __func__ = "module_alsa_card_LTX_pa__init"
        __PRETTY_FUNCTION__ = "module_alsa_card_LTX_pa__init"
#9  0x00007ffff7b7419b in pa_module_load (c=0x61cfe0,
name=name at entry=0x7fffed5ca19b "module-alsa-card",
    argument=0x678be0 "device_id=\"0\" name=\"pci-0000_00_1b.0\"
card_name=\"alsa_card.pci-0000_00_1b.0\" namereg_fail=false tsched=yes
fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes
card_properties=\"module-u"...) at pulsecore/module.c:115
        m = <optimized out>
        load_once = <optimized out>
        get_deprecated = <optimized out>
        mi = <optimized out>
        __func__ = "pa_module_load"
        __PRETTY_FUNCTION__ = "pa_module_load"
#10 0x00007fffed5c8a37 in verify_access (u=0x6749b0, d=0x6783f0) at
modules/module-udev-detect.c:341
        m = <optimized out>
        cd = <optimized out>
        card = <optimized out>
        accessible = <optimized out>
        __func__ = "verify_access"
        __PRETTY_FUNCTION__ = "verify_access"
#11 0x00007fffed5c9cb7 in process_path (path=<optimized out>,
u=0x6749b0) at modules/module-udev-detect.c:489
        dev = 0x677dc0
#12 module_udev_detect_LTX_pa__init (m=<optimized out>) at
modules/module-udev-detect.c:797
        u = <optimized out>
        ma = 0x674070
        enumerate = 0x677620
        item = 0x687e50
---Type <return> to continue, or q <return> to quit---
        first = <optimized out>
        fd = <optimized out>
        use_tsched = true
        fixed_latency_range = false
        ignore_dB = false
        deferred_volume = true
        use_ucm = true
        __func__ = "module_udev_detect_LTX_pa__init"
        __PRETTY_FUNCTION__ = "module_udev_detect_LTX_pa__init"
#13 0x00007ffff7b7419b in pa_module_load (c=c at entry=0x61cfe0,
name=name at entry=0x624ac0 "module-udev-detect", argument=0x0) at
pulsecore/module.c:115
        m = <optimized out>
        load_once = <optimized out>
        get_deprecated = <optimized out>
        mi = <optimized out>
        __func__ = "pa_module_load"
        __PRETTY_FUNCTION__ = "pa_module_load"
#14 0x00007ffff7b6372a in pa_cli_command_load (c=0x61cfe0, t=0x622830,
buf=0x618c60, fail=0x617095) at pulsecore/cli-command.c:441
        name = 0x624ac0 "module-udev-detect"
        __func__ = "pa_cli_command_load"
        __PRETTY_FUNCTION__ = "pa_cli_command_load"
#15 0x00007ffff7b69282 in pa_cli_command_execute_line_stateful
(c=c at entry=0x61cfe0, s=s at entry=0x7fffffffd890 "load-module
module-udev-detect", buf=buf at entry=0x618c60, fail=fail at entry=0x617095,
    ifstate=ifstate at entry=0x7fffffffd88c) at pulsecore/cli-command.c:2108
        ret = <optimized out>
        t = 0x622830
        command = 0x7ffff7dd8240 <commands+384>
        unknown = 1
        l = 11
        cs = <optimized out>
        __func__ = "pa_cli_command_execute_line_stateful"
        __PRETTY_FUNCTION__ = "pa_cli_command_execute_line_stateful"
#16 0x00007ffff7b69b91 in pa_cli_command_execute_file_stream
(c=c at entry=0x61cfe0, f=f at entry=0x622980, buf=buf at entry=0x618c60,
fail=fail at entry=0x617095) at pulsecore/cli-command.c:2148
        line = "load-module module-udev-detect\000\000\000ules depending
on the hardware
available\000\000=input\000\000\000\000\000\000\000\002\000\000\000\002\000\000\000\177\300\222\367\377\17---Type
<return> to continue, or q <return> to quit---
7\000\000\000\000\000\000'\000\000\000d\263\222\367\377\177\000\000C\202a\000\000\000\000\000~\300\222\367\377\177\000\000\b\000\000\000\060\000\000\000\020\340\377\377\377\177\000\000\060\337\377\377\377\177\000\000\203\202a\000\000\000\000\000\211\202a\000\000\000\000\000\222\300\222\367\377\177\000\000\242\202a\000\000\000\000\000\263\202a\000\000\000\000\000"...
        ifstate = 1
        ret = -1
        _fail = true
        __func__ = "pa_cli_command_execute_file_stream"
        __PRETTY_FUNCTION__ = "pa_cli_command_execute_file_stream"
#17 0x000000000040796e in main (argc=<optimized out>, argv=<optimized
out>) at daemon/main.c:1084
        f = 0x622980
        c = 0x61cfe0
        buf = 0x618c60
        conf = 0x617090
        mainloop = 0x618de0
        s = <optimized out>
        configured_address = 0x61cfe0 "\001"
        r = 0
        retval = 1
        d = 1
        valid_pid_file = true
        ltdl_init = true
        passed_fd = <optimized out>
        e = <optimized out>
        daemon_pipe = {-1, -1}
        daemon_pipe2 = {-1, -1}
        autospawn_fd = -1
        autospawn_locked = false
        server_lookup = 0x0
        lookup_service_bus = 0x0
        server_bus = 0x0
        start_server = <optimized out>
        __func__ = "main"
        __PRETTY_FUNCTION__ = "main"
(gdb)
(gdb) quit
A debugging session is active.

        Inferior 1 [process 6725] will be killed.

Quit anyway? (y or n) y


Thanks again for your efforts and concern!

> well, upstream's input would be great to have, but they will most
> certainly ask you to try the latest HEAD of the master branch. Would
> you be willing (and able) to recompile the alsa ac3 encoder plugin
> against a custom build libacodec? If that fixes the problem, we could
> proceed with identifying what commit to backport, if not, I would
> think that upstream would be quite open to assist with finding a
> solution to this problem.

I'd say i'm able to do that building. What would be the most convenient
method for doing this, in your opinion? Compiling a libav, installing to
some temporary dir, then forcing alsa-plugins to use that libav, and
simply copying over the generated a52 plugin to my system (backing up
the original one)? Or is there some easier way that i fail to see?

Best Regards
- Dario Ernst



More information about the pkg-multimedia-maintainers mailing list