Bug 58221 - pulseaudio crashes when bluetooth A2DP source device connects
Summary: pulseaudio crashes when bluetooth A2DP source device connects
Status: RESOLVED NOTOURBUG
Alias: None
Product: PulseAudio
Classification: Unclassified
Component: modules (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: pulseaudio-bugs
QA Contact: pulseaudio-bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-13 03:31 UTC by Alex Roman
Modified: 2012-12-13 07:04 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Log of pulseaudio crash (160.15 KB, text/plain)
2012-12-13 03:31 UTC, Alex Roman
Details
gdb output (132.76 KB, text/plain)
2012-12-13 06:27 UTC, Alex Roman
Details

Description Alex Roman 2012-12-13 03:31:00 UTC
Created attachment 71420 [details]
Log of pulseaudio crash

I can reproduce this issue consistently. The setup is as follows:
- This is a Car PC setup
- Latest Arch Linux
- Bluez 4.101-1 configured as an A2DP gateway
- PulseAudio 2.99.3

When I connect my A2DP source device (smartphone) to the PC, pulseaudio crashes (or exits, I haven't been able to find a core or how to enable core dumping).

I then ran pulseaudio with logging enabled:
pulseaudio -vvvvvvvv --log-time=1 > pulse.log 2>&1 &

I then proceeded to reproduce the problem. The log is attached.

Like I said I can reproduce the problem, and I am able to build my own pulse audio and try it out. Let me know if there is any further debug info that you'd like.

Thanks!
Comment 1 Tanu Kaskinen 2012-12-13 04:14:35 UTC
This has been reported also by others, but this hasn't been investigated yet. Since this appears to be a quite common problem, this should probably be regarded as a release blocker.

The crash appears to be happen somewhere deep in libc when loading module-bluetooth-device. There shouldn't be anything special about loading module-bluetooth-device, but all the reports have been about that particular module anyway. Maybe module-bluetooth-discover overwrites some random memory, breaking the module loading procedure?

Could you get a backtrace with gdb? Instructions:

$ gdb pulseaudio
[gdb starts and you get to the gdb prompt]
(gdb) run -vvv
[reproduce crash]
(gdb) thread apply all bt

Also, what is the exact version of your libc?
Comment 2 Arun Raghavan 2012-12-13 04:46:54 UTC
From the logs, I see:

Inconsistency detected by ld.so: dl-open.c: 666: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!

Is this some sort of standard distribution? Could you also provide the output of ldd /usr/lib/pulse-2.99/modules/module-bluetooth-policy.so ?
Comment 3 Arun Raghavan 2012-12-13 04:50:35 UTC
JFYI, the reason I asked those questions is:

https://jira.skype.com/browse/SCL-510
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543448
Comment 4 Alex Roman 2012-12-13 06:27:50 UTC
Created attachment 71423 [details]
gdb output

It appears that the process doesn't crash, but it cleanly exits... As you can see from the attachment, there was no crash and thus no core or backtrace... :(
Comment 5 Alex Roman 2012-12-13 06:29:48 UTC
I'm running on Arch Linux (www.archlinux.org). It's the latest version and I just set up this computer last night.

Here's my version of glibc according to my distro's package manager:
[alex@carpc ~]$ pacman -Q glibc
glibc 2.16.0-5

And here's the output of ldd on module-bluetooth-policy.so:
[alex@carpc ~]$ ldd /usr/lib/pulse-2.99/modules/module-bluetooth-policy.so 
        linux-vdso.so.1 (0x00007fffd15ff000)
        libpulsecore-2.99.so => /usr/lib/libpulsecore-2.99.so (0x00007f14ba556000)
        libpulse.so.0 => /usr/lib/libpulse.so.0 (0x00007f14ba30c000)
        libpulsecommon-2.99.so => /usr/lib/pulseaudio/libpulsecommon-2.99.so (0x00007f14ba0a4000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f14b9e87000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f14b9ae0000)
        libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007f14b98d6000)
        libsamplerate.so.0 => /usr/lib/libsamplerate.so.0 (0x00007f14b9569000)
        libspeexdsp.so.1 => /usr/lib/libspeexdsp.so.1 (0x00007f14b9357000)
        libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007f14b9155000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f14b8e1b000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007f14b8bb5000)
        liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x00007f14b893a000)
        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007f14b86f3000)
        libtdb.so.1 => /usr/lib/libtdb.so.1 (0x00007f14b84e0000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f14b81e6000)
        /usr/lib/ld-linux-x86-64.so.2 (0x00007f14baa17000)
        libjson.so.0 => /usr/lib/libjson.so.0 (0x00007f14b7fdd000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f14b7dbe000)
        libasyncns.so.0 => /usr/lib/libasyncns.so.0 (0x00007f14b7bb8000)
        librt.so.1 => /usr/lib/librt.so.1 (0x00007f14b79af000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f14b77ab000)
        libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x00007f14b755f000)
        libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f14b7090000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f14b6e63000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f14b6c5c000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f14b6a58000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f14b6852000)
        libnsl.so.1 => /usr/lib/libnsl.so.1 (0x00007f14b6639000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f14b6422000)
[alex@carpc ~]$
Comment 6 Arun Raghavan 2012-12-13 06:36:04 UTC
Thanks for the output. Could you also provide the output of ldd /usr/lib32/libpulse* ?
Comment 7 Alex Roman 2012-12-13 06:39:38 UTC
Found the problem!

First of all a big thank you for the hint of using ldd. I was totally looking the wrong way at this problem.

Turns out I was missing the sbc package, and module-bluetooth-device.so was referencing that library.

Thanks again! You may mark this issue as resolved/closed. FYI if this ever shows up again it's most likely a missing library. Here's the output of ldd on the "culprit":
[alex@carpc ~]$ ldd /usr/lib/pulse-2.99/modules/module-bluetooth-device.so 
        linux-vdso.so.1 (0x00007fffbdbff000)
        libsbc.so.1 => not found
        libbluetooth-util.so => /usr/lib/pulse-2.99/modules/libbluetooth-util.so (0x00007f72afa0f000)
        libpulsecore-2.99.so => /usr/lib/libpulsecore-2.99.so (0x00007f72af77b000)
        libpulse.so.0 => /usr/lib/libpulse.so.0 (0x00007f72af530000)
        libpulsecommon-2.99.so => /usr/lib/pulseaudio/libpulsecommon-2.99.so (0x00007f72af2c8000)
        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x00007f72af082000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f72aee65000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f72aeabe000)
        libltdl.so.7 => /usr/lib/libltdl.so.7 (0x00007f72ae8b4000)
        libsamplerate.so.0 => /usr/lib/libsamplerate.so.0 (0x00007f72ae547000)
        libspeexdsp.so.1 => /usr/lib/libspeexdsp.so.1 (0x00007f72ae335000)
        libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007f72ae133000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f72addf9000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007f72adb93000)
        liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x00007f72ad918000)
        libtdb.so.1 => /usr/lib/libtdb.so.1 (0x00007f72ad704000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f72ad40a000)
        /usr/lib/ld-linux-x86-64.so.2 (0x00007f72afe55000)
        libjson.so.0 => /usr/lib/libjson.so.0 (0x00007f72ad202000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f72acfe2000)
        libasyncns.so.0 => /usr/lib/libasyncns.so.0 (0x00007f72acddc000)
        librt.so.1 => /usr/lib/librt.so.1 (0x00007f72acbd4000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f72ac9cf000)
        libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x00007f72ac784000)
        libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f72ac2b5000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f72ac087000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f72abe81000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f72abc7d000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f72aba76000)
        libnsl.so.1 => /usr/lib/libnsl.so.1 (0x00007f72ab85e000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f72ab647000)
Comment 8 Alex Roman 2012-12-13 06:40:57 UTC
So yeah, it all appears to work: after installing the sbc package I now have A2DP streaming in my car :D
Comment 9 Arun Raghavan 2012-12-13 06:45:06 UTC
Excellent, glad it's working now! :)
Comment 10 Arun Raghavan 2012-12-13 06:49:03 UTC
I've also pinged the Arch maintainer about this to double-check whether there's a packaging issue there.
Comment 11 Alex Roman 2012-12-13 07:04:23 UTC
Thanks! I was going to investigate a package dependency issue and report, but I wouldn't have gotten to it until after Christmas and the sooner they know about it the better :)


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.