Bug 73061 - bluetoothd segfault at 0 ip (error 4) when trying to connect A2DP (bluez-5.16, pulseaudio-5.0, gentoo)
Summary: bluetoothd segfault at 0 ip (error 4) when trying to connect A2DP (bluez-5.16...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-03-28 00:28 UTC by Sumit Khanna
Modified: 2014-04-08 10:22 UTC (History)
4 users (show)

See Also:
Kernel Version: 3.12.13-gentoo
Subsystem:
Regression: No
Bisected commit-id:


Attachments
System.map (3.14 MB, application/octet-stream)
2014-03-28 00:28 UTC, Sumit Khanna
Details
Kernel config.gz (19.87 KB, application/octet-stream)
2014-03-28 00:28 UTC, Sumit Khanna
Details
btmon logs (56.99 KB, text/x-log)
2014-03-31 21:12 UTC, Sumit Khanna
Details

Description Sumit Khanna 2014-03-28 00:28:15 UTC
Created attachment 130911 [details]
System.map

I was using pusleaudio-2, blocking the update to 4 because I could never get AD2P/bluetooth to work correctly with it. Recently I did a full update to pulseaudio-5.0 and I'm determined to get this working.

When using the basic bluetoothctl that comes with bluez-5.16 in Gentoo, I try issuing the following:

[bluetooth]# power on
[CHG] Controller 00:02:72:35:41:B4 Class: 0x0c0104
Changing power on succeeded
[CHG] Controller 00:02:72:35:41:B4 Powered: yes
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:02:72:35:41:B4 Discovering: yes
[CHG] Device 34:DF:2A:09:A5:D0 RSSI: -56
[bluetooth]# devices
Device 34:DF:2A:09:A5:D0 Velodyne vFree
[NEW] Device C8:F7:33:A2:E2:5B ubuntu-0
[bluetooth]# pair 34:DF:2A:09:A5:D0
Attempting to pair with 34:DF:2A:09:A5:D0
Failed to pair: org.bluez.Error.AlreadyExists
[bluetooth]# connect 34:DF:2A:09:A5:D0
Attempting to connect to 34:DF:2A:09:A5:D0
[CHG] Device 34:DF:2A:09:A5:D0 Connected: yes
Connection successful

I see a connection successful, but then bluetoothd immediately dies and I see the following in my system log:

Mar 28 13:16:07 [bluetoothd] /org/bluez/hci0/dev_34_DF_2A_09_A5_D0/fd0: fd(22) ready
Mar 28 13:16:07 [kernel] [  184.096837] input: 34:DF:2A:09:A5:D0 as /devices/virtual/input/input8
Mar 28 13:16:09 [kernel] [  186.211572] bluetoothd[2144]: segfault at 0 ip 00007f572451637b sp 00007fff360ea170 error 4 in bluetoothd[7f57244e0000+d8000]
Mar 28 13:16:26 [dbus] [system] Activating service name='org.freedesktop.NetworkManager' (using servicehelper)
Mar 28 13:16:26 [dbus] [system] Activated service 'org.freedesktop.NetworkManager' failed: Launch helper exited with unknown return code 1


and the following in my kernel logs:

[  184.096837] input: 34:DF:2A:09:A5:D0 as /devices/virtual/input/input8
[  186.211572] bluetoothd[2144]: segfault at 0 ip 00007f572451637b sp 00007fff360ea170 error 4 in bluetoothd[7f57244e0000+d8000]


I have uinput enabled in the kernel, I'm running bluez-5.16, pulseaudio-5.0, dbus-1.6.18-r1 and Gentoo Linux:

$ uname -a
Linux sumit 3.12.13-gentoo #3 SMP Fri Mar 28 13:11:00 NZDT 2014 x86_64 Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz GenuineIntel GNU/Linux

I've attached my System.map and /proc/config.gz. I've done a lot of searching and am not sure where to go from here.
Comment 1 Sumit Khanna 2014-03-28 00:28:43 UTC
Created attachment 130921 [details]
Kernel config.gz
Comment 2 Sumit Khanna 2014-03-28 00:46:32 UTC
I should probably include this information too:

T:  Bus=02 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a5c ProdID=2198 Rev=03.91
S:  Manufacturer=Broadcom Corp
S:  Product=Broadcom Bluetooth 3.0 Device
S:  SerialNumber=0002723541B4
C:  #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
Comment 3 Gustavo Padovan 2014-03-28 20:09:39 UTC
Could run bluetoothd manually with the -d option for better debug output. Also collect bluetooth communications logs with 'btmon' and attach both of them here.
Comment 4 Sumit Khanna 2014-03-31 21:12:21 UTC
Created attachment 131121 [details]
btmon logs
Comment 5 Sumit Khanna 2014-03-31 21:16:15 UTC
I tried stopping the bluetooth service and running it manually with -d, but there was no debugging output or new stuff in the system/kernel log that I could see. 

I ended up getting everything working by removing the bluetooth USE flag from all the gnome packages I use, masking Pulseaudio-5 (going back to Puselaudio-2, bluez-4 and blueman).

I know that's a bad fix and I really should compile with debugging and get some stack traces (I downgraded from Pulseaudio-4 because of the same issue), but I'm going to keep kicking the can for a bit. Sorry. 

Downstream bug: https://bugs.gentoo.org/show_bug.cgi?id=506024

Note You need to log in before you can comment on or make changes to this bug.