linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* bluetoothd crashes on exit when Media is enabled
@ 2011-08-06 11:17 Daniel Schaal
  2011-08-07 13:40 ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel Schaal @ 2011-08-06 11:17 UTC (permalink / raw)
  To: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 594 bytes --]

Hi,

after enabling Media in audio.conf, bluetoothd always crashes when exiting.

From the log I suspect the problem is that avdtp_unregister_sep is called 
twice with the same sep:

audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff822b650 unregistered: type:0 
codec:0 seid:2
audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff822b650 unregistered: type:0 
codec:0 seid:2
*** glibc detected *** /usr/sbin/bluetoothd: double free or corruption 
(!prev): 0x00007ffff822a920 ***

Attached is the backtrace and the debug output of bluetoothd

I'm using 4.96 with Kernel 3.0

Thanks

[-- Attachment #2: bluetoothd.bt --]
[-- Type: text/plain, Size: 1644 bytes --]

#0  0x00007ffff6a66405 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x00007ffff6a69680 in abort () at abort.c:92
#2  0x00007ffff6a9cdbb in __libc_message (do_abort=<value optimized out>, fmt=<value optimized out>) at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#3  0x00007ffff6aa6606 in malloc_printerr (action=3, str=0x7ffff6b7d2a8 "double free or corruption (!prev)", ptr=<value optimized out>) at malloc.c:6283
#4  0x00007ffff6aab33c in __libc_free (mem=<value optimized out>) at malloc.c:3738
#5  0x00007ffff788e447 in g_slist_foreach (list=<value optimized out>, func=0x7ffff7f80780 <a2dp_unregister_sep>, user_data=0x0) at /tmp/buildd/glib2.0-2.28.6/./glib/gslist.c:880
#6  0x00007ffff788e46b in g_slist_free_full (list=0x7ffff82132b0, free_func=<value optimized out>) at /tmp/buildd/glib2.0-2.28.6/./glib/gslist.c:209
#7  0x00007ffff7f82820 in a2dp_unregister (src=0x7fffffffe410) at audio/a2dp.c:1551
#8  0x00007ffff7f738bd in a2dp_server_remove (adapter=0x7ffff8212aa0) at audio/manager.c:1032
#9  0x00007ffff788e447 in g_slist_foreach (list=<value optimized out>, func=0x7ffff7fc7190 <remove_driver>, user_data=0x7ffff8212aa0) at /tmp/buildd/glib2.0-2.28.6/./glib/gslist.c:
880
#10 0x00007ffff7fca63e in unload_drivers (adapter=0x7ffff8212aa0) at src/adapter.c:2329
#11 adapter_remove (adapter=0x7ffff8212aa0) at src/adapter.c:2578
#12 0x00007ffff7fc6b42 in manager_cleanup (conn=0x7ffff820cb20, path=<value optimized out>) at src/manager.c:306
#13 0x00007ffff7f6f049 in disconnect_dbus (argc=1, argv=0x7fffffffe668) at src/main.c:304
#14 main (argc=1, argv=0x7fffffffe668) at src/main.c:481

[-- Attachment #3: bluetoothd.log --]
[-- Type: text/plain, Size: 38343 bytes --]

bluetoothd[3276]: Bluetooth daemon 4.96
bluetoothd[3276]: src/main.c:parse_config() parsing main.conf
bluetoothd[3276]: src/main.c:parse_config() discovto=0
bluetoothd[3276]: src/main.c:parse_config() pairto=0
bluetoothd[3276]: src/main.c:parse_config() pageto=8192
bluetoothd[3276]: src/main.c:parse_config() name=%h-%d
bluetoothd[3276]: src/main.c:parse_config() class=0x000100
bluetoothd[3276]: src/main.c:parse_config() discov_interval=30
bluetoothd[3276]: src/main.c:parse_config() Key file does not have key 'DeviceID'
bluetoothd[3276]: Starting SDP server
bluetoothd[3276]: src/plugin.c:plugin_init() Loading builtin plugins
bluetoothd[3276]: Excluding (conf) pnat
bluetoothd[3276]: src/plugin.c:add_plugin() Loading audio plugin
bluetoothd[3276]: Excluding (conf) sap
bluetoothd[3276]: Excluding (conf) input
bluetoothd[3276]: src/plugin.c:add_plugin() Loading serial plugin
bluetoothd[3276]: Excluding (conf) network
bluetoothd[3276]: Excluding (conf) proximity
bluetoothd[3276]: src/plugin.c:add_plugin() Loading service plugin
bluetoothd[3276]: Excluding (conf) health
bluetoothd[3276]: Excluding (conf) thermometer
bluetoothd[3276]: src/plugin.c:add_plugin() Loading hciops plugin
bluetoothd[3276]: src/plugin.c:add_plugin() Loading mgmtops plugin
bluetoothd[3276]: src/plugin.c:add_plugin() Loading formfactor plugin
bluetoothd[3276]: src/plugin.c:add_plugin() Loading storage plugin
bluetoothd[3276]: src/plugin.c:add_plugin() Loading adaptername plugin
bluetoothd[3276]: Excluding (conf) wiimote
bluetoothd[3276]: Excluding (conf) dbusoob
bluetoothd[3276]: src/plugin.c:plugin_init() Loading plugins /usr/lib/x86_64-linux-gnu/bluetooth/plugins
bluetoothd[3276]: plugins/service.c:register_interface() path /org/bluez/3276/any
bluetoothd[3276]: plugins/service.c:register_interface() Registered interface org.bluez.Service on path /org/bluez/3276/any
bluetoothd[3276]: audio/unix.c:unix_init() Unix socket created: 14
bluetoothd[3276]: plugins/hciops.c:hciops_init() 
bluetoothd[3276]: Bluetooth Management interface initialized
bluetoothd[3276]: src/main.c:main() Entering main loop
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 11 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:read_version_complete() version 0 revision 1
bluetoothd[3276]: src/rfkill.c:rfkill_event() RFKILL event idx 0 type 1 op 0 soft 0 hard 0
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 12 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:add_controller() Added controller 0
bluetoothd[3276]: plugins/mgmtops.c:mgmt_remove_uuid() index 0
bluetoothd[3276]: src/rfkill.c:rfkill_event() RFKILL event idx 1 type 2 op 0 soft 0 hard 0
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 285 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:read_info_complete() hci0 type 0 addr 00:1B:DC:00:30:05
bluetoothd[3276]: plugins/mgmtops.c:read_info_complete() hci0 class 0x580100
bluetoothd[3276]: plugins/mgmtops.c:read_info_complete() hci0 manufacturer 10 HCI ver 4:4839
bluetoothd[3276]: plugins/mgmtops.c:read_info_complete() hci0 enabled 1 discoverable 0 pairable 1 sec_mode 4
bluetoothd[3276]: plugins/mgmtops.c:read_info_complete() hci0 name CSR - bc4
bluetoothd[3276]: src/adapter.c:btd_adapter_ref() 0x7ffff8212aa0: ref=1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_read_bdaddr() index 0 addr 00:1B:DC:00:30:05
bluetoothd[3276]: src/sdpd-database.c:sdp_init_services_list() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: plugins/service.c:register_interface() path /org/bluez/3276/hci0
bluetoothd[3276]: plugins/service.c:register_interface() Registered interface org.bluez.Service on path /org/bluez/3276/hci0
bluetoothd[3276]: serial/manager.c:proxy_probe() path /org/bluez/3276/hci0
bluetoothd[3276]: src/adapter.c:btd_adapter_ref() 0x7ffff8212aa0: ref=2
bluetoothd[3276]: serial/proxy.c:proxy_register() Registered interface org.bluez.SerialProxyManager on path /org/bluez/3276/hci0
bluetoothd[3276]: audio/manager.c:media_server_probe() path /org/bluez/3276/hci0
bluetoothd[3276]: src/adapter.c:btd_adapter_ref() 0x7ffff8212aa0: ref=3
bluetoothd[3276]: audio/manager.c:audio_adapter_ref() 0x7ffff8213350: ref=1
bluetoothd[3276]: audio/manager.c:headset_server_probe() path /org/bluez/3276/hci0
bluetoothd[3276]: audio/manager.c:audio_adapter_ref() 0x7ffff8213350: ref=2
bluetoothd[3276]: audio/manager.c:state_changed() /org/bluez/3276/hci0 powered on
bluetoothd[3276]: audio/telephony.c:telephony_init() 
bluetoothd[3276]: audio/headset.c:telephony_ready_ind() Telephony plugin initialized
bluetoothd[3276]: audio/headset.c:print_ag_features() HFP AG features: "Ability to reject a call" "Enhanced call status" "Extended Error Result Codes" 
bluetoothd[3276]: audio/manager.c:headset_server_init() audio.conf: Key file does not have key 'Master'
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10000
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000003-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001108-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001112-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001203-0000-1000-8000-00805f9
bluetoothd[3276]: audio/headset.c:headset_config_init() audio.conf: Key file does not have key 'SCORouting'
bluetoothd[3276]: plugins/mgmtops.c:mgmt_fast_connectable() index 0 enable 0
bluetoothd[3276]: Changing fast connectable for hci0 failed
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10001
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000003-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000111e-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000111f-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001203-0000-1000-8000-00805f9
bluetoothd[3276]: audio/manager.c:a2dp_server_probe() path /org/bluez/3276/hci0
bluetoothd[3276]: audio/manager.c:audio_adapter_ref() 0x7ffff8213350: ref=3
bluetoothd[3276]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have key 'Disable'
bluetoothd[3276]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[3276]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[3276]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[3276]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[3276]: audio/avdtp.c:avdtp_init() audio.conf: Key file does not have key 'Master'
bluetoothd[3276]: audio/avdtp.c:avdtp_register_sep() SEP 0x7ffff8214be0 registered: type:0 codec:0 seid:1
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10002
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000019-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110a-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110d-0000-1000-8000-00805f9
bluetoothd[3276]: audio/manager.c:avrcp_server_probe() path /org/bluez/3276/hci0
bluetoothd[3276]: audio/manager.c:audio_adapter_ref() 0x7ffff8213350: ref=4
bluetoothd[3276]: audio/control.c:avrcp_register() audio.conf: Key file does not have key 'Master'
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10003
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110c-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10004
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[3276]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[3276]: plugins/adaptername.c:adaptername_probe() Setting name 'CSR - bc4' for device 'hci0'
bluetoothd[3276]: plugins/mgmtops.c:mgmt_set_name() index 0, name CSR - bc4
bluetoothd[3276]: plugins/formfactor.c:formfactor_probe() Setting 0x000110 for major/minor device class
bluetoothd[3276]: plugins/mgmtops.c:mgmt_set_dev_class() index 0 major 1 minor 16
bluetoothd[3276]: plugins/mgmtops.c:mgmt_unblock_device() index 0 addr 00:00:00:00:00:00
bluetoothd[3276]: src/device.c:device_create() Creating device /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: src/device.c:device_set_bonded() bonded 1
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff8216760: ref=1
bluetoothd[3276]: src/device.c:device_set_temporary() temporary 0
bluetoothd[3276]: src/device.c:device_probe_drivers() Probing drivers for 00:0B:E4:91:5D:0D
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D: 00001108-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D: 0000111e-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: src/adapter.c:adapter_get_device() 00:0B:E4:91:5D:0D
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff8216760: ref=2
bluetoothd[3276]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Headset record
bluetoothd[3276]: audio/headset.c:headset_init() Registered interface org.bluez.Headset on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Handsfree record
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Audio Sink
bluetoothd[3276]: audio/sink.c:sink_init() Registered interface org.bluez.AudioSink on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/manager.c:handle_uuid() Found AV Target
bluetoothd[3276]: audio/control.c:control_init() Registered interface org.bluez.Control on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/manager.c:handle_uuid() Found AV Remote
bluetoothd[3276]: src/device.c:device_create() Creating device /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[3276]: src/device.c:device_set_bonded() bonded 1
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff82195d0: ref=1
bluetoothd[3276]: src/device.c:device_set_temporary() temporary 0
bluetoothd[3276]: src/device.c:device_probe_drivers() Probing drivers for 00:22:98:CD:7A:E9
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9: 00001105-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9: 00001112-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9: 0000111f-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: src/adapter.c:adapter_get_device() 00:22:98:CD:7A:E9
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff82195d0: ref=2
bluetoothd[3276]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[3276]: audio/manager.c:handle_uuid() server not enabled for 0000111f-0000-1000-8000-00805f9b34fb (0x111f)
bluetoothd[3276]: audio/manager.c:handle_uuid() server not enabled for 00001112-0000-1000-8000-00805f9b34fb (0x1112)
bluetoothd[3276]: src/device.c:device_create() Creating device /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[3276]: src/device.c:device_set_bonded() bonded 1
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff821ba40: ref=1
bluetoothd[3276]: src/device.c:device_set_temporary() temporary 0
bluetoothd[3276]: src/device.c:device_probe_drivers() Probing drivers for E0:A6:70:2F:3A:B6
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00000002-0000-1000-8000-0002ee000002
bluetoothd[3276]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00001101-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00001103-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00001105-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00001106-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00001112-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 0000111f-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 0000112d-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 0000112f-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00005002-0000-1000-8000-0002ee000001
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00005557-0000-1000-8000-0002ee000001
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6: 00005601-0000-1000-8000-0002ee000001
bluetoothd[3276]: src/adapter.c:adapter_get_device() E0:A6:70:2F:3A:B6
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff821ba40: ref=2
bluetoothd[3276]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[3276]: audio/manager.c:handle_uuid() server not enabled for 00001112-0000-1000-8000-00805f9b34fb (0x1112)
bluetoothd[3276]: audio/manager.c:handle_uuid() server not enabled for 0000111f-0000-1000-8000-00805f9b34fb (0x111f)
bluetoothd[3276]: src/device.c:device_create() Creating device /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: src/device.c:device_set_bonded() bonded 1
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff8223e40: ref=1
bluetoothd[3276]: src/device.c:device_set_temporary() temporary 0
bluetoothd[3276]: src/device.c:device_probe_drivers() Probing drivers for 40:2B:A1:61:DD:C5
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5: 00001108-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5: 0000111e-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: src/adapter.c:adapter_get_device() 40:2B:A1:61:DD:C5
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff8223e40: ref=2
bluetoothd[3276]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Headset record
bluetoothd[3276]: audio/headset.c:headset_init() Registered interface org.bluez.Headset on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Handsfree record
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Audio Sink
bluetoothd[3276]: audio/sink.c:sink_init() Registered interface org.bluez.AudioSink on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/manager.c:handle_uuid() Found AV Target
bluetoothd[3276]: audio/control.c:control_init() Registered interface org.bluez.Control on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/manager.c:handle_uuid() Found AV Remote
bluetoothd[3276]: src/device.c:device_create() Creating device /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: src/device.c:device_set_bonded() bonded 1
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff8227530: ref=1
bluetoothd[3276]: src/device.c:device_set_temporary() temporary 0
bluetoothd[3276]: src/device.c:device_probe_drivers() Probing drivers for 00:22:FC:74:CA:27
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27: 00001108-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: serial/manager.c:serial_probe() path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27: 0000111e-0000-1000-8000-00805f9b34fb
bluetoothd[3276]: src/adapter.c:adapter_get_device() 00:22:FC:74:CA:27
bluetoothd[3276]: src/device.c:btd_device_ref() 0x7ffff8227530: ref=2
bluetoothd[3276]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Headset record
bluetoothd[3276]: audio/headset.c:headset_init() Registered interface org.bluez.Headset on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Handsfree record
bluetoothd[3276]: audio/manager.c:handle_uuid() Found Audio Sink
bluetoothd[3276]: audio/sink.c:sink_init() Registered interface org.bluez.AudioSink on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/manager.c:handle_uuid() Found AV Target
bluetoothd[3276]: audio/control.c:control_init() Registered interface org.bluez.Control on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/manager.c:handle_uuid() Found AV Remote
bluetoothd[3276]: plugins/mgmtops.c:mgmt_load_keys() index 0 keys 5 debug_keys 0
bluetoothd[3276]: plugins/mgmtops.c:mgmt_get_conn_list() index 0
bluetoothd[3276]: src/manager.c:btd_manager_register_adapter() Adapter /org/bluez/3276/hci0 registered
bluetoothd[3276]: src/adapter.c:btd_adapter_ref() 0x7ffff8212aa0: ref=4
bluetoothd[3276]: plugins/mgmtops.c:mgmt_set_name() index 0, name CSR - bc4
bluetoothd[3276]: plugins/mgmtops.c:mgmt_set_dev_class() index 0 major 1 minor 0
bluetoothd[3276]: audio/manager.c:state_changed() /org/bluez/3276/hci0 powered on
bluetoothd[3276]: plugins/mgmtops.c:mgmt_disable_cod_cache() index 0
bluetoothd[3276]: Adapter /org/bluez/3276/hci0 has been enabled
bluetoothd[3276]: src/adapter.c:adapter_mode_changed() old 0x00 new 0x02
bluetoothd[3276]: src/adapter.c:adapter_set_limited_discoverable() FALSE
bluetoothd[3276]: plugins/mgmtops.c:mgmt_set_limited_discoverable() index 0 limited 0
bluetoothd[3276]: src/adapter.c:set_mode_complete() 
bluetoothd[3276]: src/adapter.c:btd_adapter_unref() 0x7ffff8212aa0: ref=3
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() set_service_cache complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() set_dev_class complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 9 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_status() status 1 opcode 30 (index 0)
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 257 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:set_local_name_complete() hci0 name CSR - bc4
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() set_dev_class complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() set_service_cache complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 257 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:set_local_name_complete() hci0 name CSR - bc4
bluetoothd[3276]: Endpoint registered: sender=:1.28 path=/MediaEndpoint/HFPAG
bluetoothd[3276]: audio/avdtp.c:avdtp_register_sep() SEP 0x7ffff822b650 registered: type:0 codec:0 seid:2
bluetoothd[3276]: Endpoint registered: sender=:1.28 path=/MediaEndpoint/A2DPSource
bluetoothd[3276]: src/adapter.c:register_agent() Agent registered for hci0 at :1.13:/blueDevil_agent
bluetoothd[3276]: plugins/mgmtops.c:mgmt_set_io_capability() hci0 io_capability 0x01
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() set_io_capability complete
bluetoothd[3276]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[3276]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[3276]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[3276]: src/adapter.c:adapter_remove() Removing adapter /org/bluez/3276/hci0
bluetoothd[3276]: src/device.c:device_remove() Removing device /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: serial/manager.c:serial_remove() path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/unix.c:unix_device_removed() unix_device_removed(0x7ffff8218e60)
bluetoothd[3276]: audio/headset.c:path_unregister() Unregistered interface org.bluez.Headset on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/sink.c:path_unregister() Unregistered interface org.bluez.AudioSink on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: audio/control.c:path_unregister() Unregistered interface org.bluez.Control on path /org/bluez/3276/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff8216760: ref=1
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff8216760: ref=0
bluetoothd[3276]: src/device.c:device_free() 0x7ffff8216760
bluetoothd[3276]: src/device.c:device_remove() Removing device /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[3276]: serial/manager.c:serial_remove() path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[3276]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[3276]: audio/unix.c:unix_device_removed() unix_device_removed(0x7ffff821b620)
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff82195d0: ref=1
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff82195d0: ref=0
bluetoothd[3276]: src/device.c:device_free() 0x7ffff82195d0
bluetoothd[3276]: src/device.c:device_remove() Removing device /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[3276]: serial/manager.c:serial_remove() path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[3276]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[3276]: audio/unix.c:unix_device_removed() unix_device_removed(0x7ffff8223d10)
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff821ba40: ref=1
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff821ba40: ref=0
bluetoothd[3276]: src/device.c:device_free() 0x7ffff821ba40
bluetoothd[3276]: src/device.c:device_remove() Removing device /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: serial/manager.c:serial_remove() path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/unix.c:unix_device_removed() unix_device_removed(0x7ffff82271f0)
bluetoothd[3276]: audio/headset.c:path_unregister() Unregistered interface org.bluez.Headset on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/sink.c:path_unregister() Unregistered interface org.bluez.AudioSink on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: audio/control.c:path_unregister() Unregistered interface org.bluez.Control on path /org/bluez/3276/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff8223e40: ref=1
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff8223e40: ref=0
bluetoothd[3276]: src/device.c:device_free() 0x7ffff8223e40
bluetoothd[3276]: src/device.c:device_remove() Removing device /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: serial/manager.c:serial_remove() path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/unix.c:unix_device_removed() unix_device_removed(0x7ffff8229c70)
bluetoothd[3276]: audio/headset.c:path_unregister() Unregistered interface org.bluez.Headset on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/sink.c:path_unregister() Unregistered interface org.bluez.AudioSink on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: audio/control.c:path_unregister() Unregistered interface org.bluez.Control on path /org/bluez/3276/hci0/dev_00_22_FC_74_CA_27
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff8227530: ref=1
bluetoothd[3276]: src/device.c:btd_device_unref() 0x7ffff8227530: ref=0
bluetoothd[3276]: src/device.c:device_free() 0x7ffff8227530
bluetoothd[3276]: audio/manager.c:avrcp_server_remove() path /org/bluez/3276/hci0
bluetoothd[3276]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10004
bluetoothd[3276]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10003
bluetoothd[3276]: audio/manager.c:audio_adapter_unref() 0x7ffff8213350: ref=3
bluetoothd[3276]: audio/manager.c:a2dp_server_remove() path /org/bluez/3276/hci0
bluetoothd[3276]: audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff8214be0 unregistered: type:0 codec:0 seid:1
bluetoothd[3276]: audio/media.c:media_endpoint_release() sender=:1.28 path=/MediaEndpoint/A2DPSource
bluetoothd[3276]: Endpoint unregistered: sender=:1.28 path=/MediaEndpoint/A2DPSource
bluetoothd[3276]: audio/media.c:media_endpoint_release() sender=:1.28 path=/MediaEndpoint/A2DPSource
bluetoothd[3276]: audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff822b650 unregistered: type:0 codec:0 seid:2
bluetoothd[3276]: audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff822b650 unregistered: type:0 codec:0 seid:2
*** glibc detected *** /usr/sbin/bluetoothd: double free or corruption (!prev): 0x00007ffff822a920 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x72606)[0x7ffff6aa6606]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x6c)[0x7ffff6aab33c]
/lib/libglib-2.0.so.0(g_slist_foreach+0x27)[0x7ffff788e447]
/lib/libglib-2.0.so.0(g_slist_free_full+0xb)[0x7ffff788e46b]
/usr/sbin/bluetoothd(+0x29820)[0x7ffff7f82820]
/usr/sbin/bluetoothd(+0x1a8bd)[0x7ffff7f738bd]
/lib/libglib-2.0.so.0(g_slist_foreach+0x27)[0x7ffff788e447]
/usr/sbin/bluetoothd(+0x7163e)[0x7ffff7fca63e]
/usr/sbin/bluetoothd(+0x6db42)[0x7ffff7fc6b42]
/usr/sbin/bluetoothd(+0x16049)[0x7ffff7f6f049]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd)[0x7ffff6a52ead]
/usr/sbin/bluetoothd(+0x16335)[0x7ffff7f6f335]
======= Memory map: ========
7ffff0000000-7ffff0021000 rw-p 00000000 00:00 0 
7ffff0021000-7ffff4000000 ---p 00000000 00:00 0 
7ffff65e2000-7ffff65f7000 r-xp 00000000 08:01 1753108                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ffff65f7000-7ffff67f7000 ---p 00015000 08:01 1753108                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ffff67f7000-7ffff67f8000 rw-p 00015000 08:01 1753108                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ffff67f8000-7ffff6834000 r-xp 00000000 08:01 1753119                    /lib/x86_64-linux-gnu/libpcre.so.3.12.1
7ffff6834000-7ffff6a33000 ---p 0003c000 08:01 1753119                    /lib/x86_64-linux-gnu/libpcre.so.3.12.1
7ffff6a33000-7ffff6a34000 rw-p 0003b000 08:01 1753119                    /lib/x86_64-linux-gnu/libpcre.so.3.12.1
7ffff6a34000-7ffff6bae000 r-xp 00000000 08:01 1753090                    /lib/x86_64-linux-gnu/libc-2.13.so
7ffff6bae000-7ffff6dae000 ---p 0017a000 08:01 1753090                    /lib/x86_64-linux-gnu/libc-2.13.so
7ffff6dae000-7ffff6db2000 r--p 0017a000 08:01 1753090                    /lib/x86_64-linux-gnu/libc-2.13.so
7ffff6db2000-7ffff6db3000 rw-p 0017e000 08:01 1753090                    /lib/x86_64-linux-gnu/libc-2.13.so
7ffff6db3000-7ffff6db8000 rw-p 00000000 00:00 0 
7ffff6db8000-7ffff6dbf000 r-xp 00000000 08:01 1753407                    /lib/x86_64-linux-gnu/librt-2.13.so
7ffff6dbf000-7ffff6fbe000 ---p 00007000 08:01 1753407                    /lib/x86_64-linux-gnu/librt-2.13.so
7ffff6fbe000-7ffff6fbf000 r--p 00006000 08:01 1753407                    /lib/x86_64-linux-gnu/librt-2.13.so
7ffff6fbf000-7ffff6fc0000 rw-p 00007000 08:01 1753407                    /lib/x86_64-linux-gnu/librt-2.13.so
7ffff6fc0000-7ffff6fc2000 r-xp 00000000 08:01 1753395                    /lib/x86_64-linux-gnu/libdl-2.13.so
7ffff6fc2000-7ffff71c2000 ---p 00002000 08:01 1753395                    /lib/x86_64-linux-gnu/libdl-2.13.so
7ffff71c2000-7ffff71c3000 r--p 00002000 08:01 1753395                    /lib/x86_64-linux-gnu/libdl-2.13.so
7ffff71c3000-7ffff71c4000 rw-p 00003000 08:01 1753395                    /lib/x86_64-linux-gnu/libdl-2.13.so
7ffff71c4000-7ffff71c8000 r-xp 00000000 08:01 3024602                    /usr/lib/libcap-ng.so.0.0.0
7ffff71c8000-7ffff73c7000 ---p 00004000 08:01 3024602                    /usr/lib/libcap-ng.so.0.0.0
7ffff73c7000-7ffff73c8000 r--p 00003000 08:01 3024602                    /usr/lib/libcap-ng.so.0.0.0
7ffff73c8000-7ffff73c9000 rw-p 00004000 08:01 3024602                    /usr/lib/libcap-ng.so.0.0.0
7ffff73c9000-7ffff73e0000 r-xp 00000000 08:01 1753405                    /lib/x86_64-linux-gnu/libpthread-2.13.so
7ffff73e0000-7ffff75df000 ---p 00017000 08:01 1753405                    /lib/x86_64-linux-gnu/libpthread-2.13.so
7ffff75df000-7ffff75e0000 r--p 00016000 08:01 1753405                    /lib/x86_64-linux-gnu/libpthread-2.13.so
7ffff75e0000-7ffff75e1000 rw-p 00017000 08:01 1753405                    /lib/x86_64-linux-gnu/libpthread-2.13.so
7ffff75e1000-7ffff75e5000 rw-p 00000000 00:00 0 
7ffff75e5000-7ffff7628000 r-xp 00000000 08:01 1753124                    /lib/x86_64-linux-gnu/libdbus-1.so.3.6.3
7ffff7628000-7ffff7827000 ---p 00043000 08:01 1753124                    /lib/x86_64-linux-gnu/libdbus-1.so.3.6.3
7ffff7827000-7ffff7829000 r--p 00042000 08:01 1753124                    /lib/x86_64-linux-gnu/libdbus-1.so.3.6.3
7ffff7829000-7ffff782a000 rw-p 00044000 08:01 1753124                    /lib/x86_64-linux-gnu/libdbus-1.so.3.6.3
7ffff782a000-7ffff791a000 r-xp 00000000 08:01 1753205                    /lib/libglib-2.0.so.0.2800.6
7ffff791a000-7ffff7b19000 ---p 000f0000 08:01 1753205                    /lib/libglib-2.0.so.0.2800.6
7ffff7b19000-7ffff7b1a000 rw-p 000ef000 08:01 1753205                    /lib/libglib-2.0.so.0.2800.6
7ffff7b1a000-7ffff7b1b000 rw-p 00000000 00:00 0 
7ffff7b1b000-7ffff7b35000 r-xp 00000000 08:01 163913                     /usr/lib/x86_64-linux-gnu/libbluetooth.so.3.11.4
7ffff7b35000-7ffff7d34000 ---p 0001a000 08:01 163913                     /usr/lib/x86_64-linux-gnu/libbluetooth.so.3.11.4
7ffff7d34000-7ffff7d37000 rw-p 00019000 08:01 163913                     /usr/lib/x86_64-linux-gnu/libbluetooth.so.3.11.4
7ffff7d37000-7ffff7d56000 r-xp 00000000 08:01 1753410                    /lib/x86_64-linux-gnu/ld-2.13.so
7ffff7f2b000-7ffff7f31000 rw-p 00000000 00:00 0 
7ffff7f4c000-7ffff7f53000 r--s 00000000 08:01 207270                     /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7ffff7f53000-7ffff7f55000 rw-p 00000000 00:00 0 
7ffff7f55000-7ffff7f56000 r-xp 00000000 00:00 0                          [vdso]
7ffff7f56000-7ffff7f57000 r--p 0001f000 08:01 1753410                    /lib/x86_64-linux-gnu/ld-2.13.so
7ffff7f57000-7ffff7f58000 rw-p 00020000 08:01 1753410                    /lib/x86_64-linux-gnu/ld-2.13.so
7ffff7f58000-7ffff7f59000 rw-p 00000000 00:00 0 
7ffff7f59000-7ffff7fff000 r-xp 00000000 08:01 3023299                    /usr/sbin/bluetoothd
7ffff81fe000-7ffff8206000 rw-p 000a5000 08:01 3023299                    /usr/sbin/bluetoothd
7ffff8206000-7ffff8247000 rw-p 00000000 00:00 0                          [heap]
7ffffffde000-7ffffffff000 rw-p 00000000 00:00 0                          [stack]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: bluetoothd crashes on exit when Media is enabled
  2011-08-06 11:17 bluetoothd crashes on exit when Media is enabled Daniel Schaal
@ 2011-08-07 13:40 ` Luiz Augusto von Dentz
  2011-08-07 14:13   ` Daniel Schaal
  0 siblings, 1 reply; 3+ messages in thread
From: Luiz Augusto von Dentz @ 2011-08-07 13:40 UTC (permalink / raw)
  To: Daniel Schaal; +Cc: linux-bluetooth

[-- Attachment #1: Type: text/plain, Size: 819 bytes --]

Hi Daniel,

On Sat, Aug 6, 2011 at 2:17 PM, Daniel Schaal <farbing@web.de> wrote:
> Hi,
>
> after enabling Media in audio.conf, bluetoothd always crashes when exiting.
>
> From the log I suspect the problem is that avdtp_unregister_sep is called
> twice with the same sep:
>
> audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff822b650 unregistered: type:0
> codec:0 seid:2
> audio/avdtp.c:avdtp_unregister_sep() SEP 0x7ffff822b650 unregistered: type:0
> codec:0 seid:2
> *** glibc detected *** /usr/sbin/bluetoothd: double free or corruption
> (!prev): 0x00007ffff822a920 ***
>
> Attached is the backtrace and the debug output of bluetoothd
>
> I'm using 4.96 with Kernel 3.0

Could you please try with attached patch. It has been posted here
before, but we decide to rework it a little bit.


-- 
Luiz Augusto von Dentz

[-- Attachment #2: 0001-Fix-possible-invalid-read-free-on-media.c.patch --]
[-- Type: text/x-patch, Size: 32716 bytes --]

From d605b6d126a0c968e8a72c014caffaf659cbce5b Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Fri, 8 Jul 2011 12:04:29 +0300
Subject: [PATCH BlueZ] Fix possible invalid read/free on media.c

This also fix the circular dependency of media.c and a2dp.c

 Invalid read of size 8
    at 0x4EA8CC2: g_slice_free_chain_with_offset (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x13AF33: path_free (media.c:417)
    by 0x11EB39: remove_interface (object.c:563)
    by 0x11F360: g_dbus_unregister_interface (object.c:715)
    by 0x120C49: media_server_remove (manager.c:1098)
    by 0x4EA9826: g_slist_foreach (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x178915: adapter_remove (adapter.c:2326)
    by 0x17535F: btd_manager_unregister_adapter (manager.c:293)
    by 0x154081: device_event (hciops.c:2643)
    by 0x1543C1: io_stack_event (hciops.c:2763)
    by 0x4E8C88C: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x4E8D087: ??? (in /lib64/libglib-2.0.so.0.2908.0)
  Address 0x63f6638 is 8 bytes inside a block of size 16 free'd
    at 0x4A055FE: free (vg_replace_malloc.c:366)
    by 0x4E938F2: g_free (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x4EA854E: g_slice_free1 (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x4EA930C: g_slist_remove (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x13AE53: media_endpoint_remove (media.c:118)
    by 0x4EA9826: g_slist_foreach (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x4EA984A: g_slist_free_full (in /lib64/libglib-2.0.so.0.2908.0)
    by 0x13AF33: path_free (media.c:417)
    by 0x11EB39: remove_interface (object.c:563)
    by 0x11F360: g_dbus_unregister_interface (object.c:715)
    by 0x120C49: media_server_remove (manager.c:1098)
    by 0x4EA9826: g_slist_foreach (in /lib64/libglib-2.0.so.0.2908.0)
---
 audio/a2dp.c      |   78 ++++---
 audio/a2dp.h      |   29 +++-
 audio/media.c     |  676 +++++++++++++++++++++++++++++++----------------------
 audio/media.h     |   17 --
 audio/transport.c |    3 +-
 5 files changed, 464 insertions(+), 339 deletions(-)

diff --git a/audio/a2dp.c b/audio/a2dp.c
index 72a0df5..6e14913 100644
--- a/audio/a2dp.c
+++ b/audio/a2dp.c
@@ -44,8 +44,6 @@
 #include "sink.h"
 #include "source.h"
 #include "unix.h"
-#include "media.h"
-#include "transport.h"
 #include "a2dp.h"
 #include "sdpd.h"
 
@@ -64,7 +62,7 @@
 
 struct a2dp_sep {
 	struct a2dp_server *server;
-	struct media_endpoint *endpoint;
+	struct a2dp_endpoint *endpoint;
 	uint8_t type;
 	uint8_t codec;
 	struct avdtp_local_sep *lsep;
@@ -75,6 +73,8 @@ struct a2dp_sep {
 	gboolean locked;
 	gboolean suspending;
 	gboolean starting;
+	void *user_data;
+	GDestroyNotify destroy;
 };
 
 struct a2dp_setup_cb {
@@ -372,8 +372,8 @@ static void stream_state_changed(struct avdtp_stream *stream,
 
 	sep->stream = NULL;
 
-	if (sep->endpoint)
-		media_endpoint_clear_configuration(sep->endpoint);
+	if (sep->endpoint && sep->endpoint->clear_configuration)
+		sep->endpoint->clear_configuration(sep, sep->user_data);
 }
 
 static gboolean auto_config(gpointer data)
@@ -638,7 +638,7 @@ static gboolean mpeg_getcap_ind(struct avdtp *session,
 	return TRUE;
 }
 
-static void endpoint_setconf_cb(struct media_endpoint *endpoint, void *ret,
+static void endpoint_setconf_cb(struct a2dp_sep *sep, void *ret,
 						int size, void *user_data)
 {
 	struct a2dp_setup *setup = user_data;
@@ -701,11 +701,12 @@ static gboolean endpoint_setconf_ind(struct avdtp *session,
 			goto done;
 		}
 
-		ret = media_endpoint_set_configuration(a2dp_sep->endpoint,
+		ret = a2dp_sep->endpoint->set_configuration(a2dp_sep,
 						setup->dev, codec->data,
 						cap->length - sizeof(*codec),
-						endpoint_setconf_cb, setup);
-		if (ret)
+						endpoint_setconf_cb, setup,
+						a2dp_sep->user_data);
+		if (ret == 0)
 			return TRUE;
 
 		avdtp_error_init(setup->err, AVDTP_MEDIA_CODEC,
@@ -741,8 +742,8 @@ static gboolean endpoint_getcap_ind(struct avdtp *session,
 
 	*caps = g_slist_append(*caps, media_transport);
 
-	length = media_endpoint_get_capabilities(a2dp_sep->endpoint,
-						&capabilities);
+	length = a2dp_sep->endpoint->get_capabilities(a2dp_sep, &capabilities,
+							a2dp_sep->user_data);
 
 	codec_caps = g_malloc0(sizeof(*codec_caps) + length);
 	codec_caps->media_type = AVDTP_MEDIA_TYPE_AUDIO;
@@ -765,7 +766,7 @@ static gboolean endpoint_getcap_ind(struct avdtp *session,
 	return TRUE;
 }
 
-static void endpoint_open_cb(struct media_endpoint *endpoint, void *ret,
+static void endpoint_open_cb(struct a2dp_sep *sep, void *ret,
 						int size, void *user_data)
 {
 	struct a2dp_setup *setup = user_data;
@@ -828,15 +829,16 @@ static void setconf_cfm(struct avdtp *session, struct avdtp_local_sep *sep,
 	if (a2dp_sep->endpoint) {
 		struct avdtp_service_capability *service;
 		struct avdtp_media_codec_capability *codec;
+		int err;
 
 		service = avdtp_stream_get_codec(stream);
 		codec = (struct avdtp_media_codec_capability *) service->data;
 
-		if (media_endpoint_set_configuration(a2dp_sep->endpoint, dev,
-						codec->data, service->length -
-						sizeof(*codec),
-						endpoint_open_cb, setup) ==
-						TRUE)
+		err = a2dp_sep->endpoint->set_configuration(a2dp_sep, dev,
+					codec->data, service->length -
+					sizeof(*codec), endpoint_open_cb,
+					setup, a2dp_sep->user_data);
+		if (err == 0)
 			return;
 
 		setup->stream = NULL;
@@ -1254,18 +1256,17 @@ static gboolean endpoint_delayreport_ind(struct avdtp *session,
 						uint8_t *err, void *user_data)
 {
 	struct a2dp_sep *a2dp_sep = user_data;
-	struct media_transport *transport;
 
 	if (a2dp_sep->type == AVDTP_SEP_TYPE_SINK)
 		DBG("Sink %p: DelayReport_Ind", sep);
 	else
 		DBG("Source %p: DelayReport_Ind", sep);
 
-	transport = media_endpoint_get_transport(a2dp_sep->endpoint);
-	if (transport == NULL)
+	if (a2dp_sep->endpoint == NULL ||
+				a2dp_sep->endpoint->set_delay == NULL)
 		return FALSE;
 
-	media_transport_update_delay(transport, delay);
+	a2dp_sep->endpoint->set_delay(a2dp_sep, delay, a2dp_sep->user_data);
 
 	return TRUE;
 }
@@ -1559,23 +1560,25 @@ proceed:
 	if (source) {
 		for (i = 0; i < sbc_srcs; i++)
 			a2dp_add_sep(src, AVDTP_SEP_TYPE_SOURCE,
-				A2DP_CODEC_SBC, delay_reporting, NULL, NULL);
+					A2DP_CODEC_SBC, delay_reporting,
+					NULL, NULL, NULL, NULL);
 
 		for (i = 0; i < mpeg12_srcs; i++)
 			a2dp_add_sep(src, AVDTP_SEP_TYPE_SOURCE,
 					A2DP_CODEC_MPEG12, delay_reporting,
-					NULL, NULL);
+					NULL, NULL, NULL, NULL);
 	}
 	server->sink_enabled = sink;
 	if (sink) {
 		for (i = 0; i < sbc_sinks; i++)
 			a2dp_add_sep(src, AVDTP_SEP_TYPE_SINK,
-				A2DP_CODEC_SBC, delay_reporting, NULL, NULL);
+					A2DP_CODEC_SBC, delay_reporting,
+					NULL, NULL, NULL, NULL);
 
 		for (i = 0; i < mpeg12_sinks; i++)
 			a2dp_add_sep(src, AVDTP_SEP_TYPE_SINK,
 					A2DP_CODEC_MPEG12, delay_reporting,
-					NULL, NULL);
+					NULL, NULL, NULL, NULL);
 	}
 
 	return 0;
@@ -1583,8 +1586,8 @@ proceed:
 
 static void a2dp_unregister_sep(struct a2dp_sep *sep)
 {
-	if (sep->endpoint) {
-		media_endpoint_release(sep->endpoint);
+	if (sep->destroy) {
+		sep->destroy(sep->user_data);
 		sep->endpoint = NULL;
 	}
 
@@ -1625,7 +1628,9 @@ void a2dp_unregister(const bdaddr_t *src)
 
 struct a2dp_sep *a2dp_add_sep(const bdaddr_t *src, uint8_t type,
 				uint8_t codec, gboolean delay_reporting,
-				struct media_endpoint *endpoint, int *err)
+				struct a2dp_endpoint *endpoint,
+				void *user_data, GDestroyNotify destroy,
+				int *err)
 {
 	struct a2dp_server *server;
 	struct a2dp_sep *sep;
@@ -1678,6 +1683,8 @@ proceed:
 	sep->codec = codec;
 	sep->type = type;
 	sep->delay_reporting = delay_reporting;
+	sep->user_data = user_data;
+	sep->destroy = destroy;
 
 	if (type == AVDTP_SEP_TYPE_SOURCE) {
 		l = &server->sources;
@@ -1927,8 +1934,8 @@ static gboolean select_capabilities(struct avdtp *session,
 	return TRUE;
 }
 
-static void select_cb(struct media_endpoint *endpoint, void *ret, int size,
-			void *user_data)
+static void select_cb(struct a2dp_sep *sep, void *ret, int size,
+							void *user_data)
 {
 	struct a2dp_setup *setup = user_data;
 	struct avdtp_service_capability *media_transport, *media_codec;
@@ -1981,7 +1988,7 @@ static struct a2dp_sep *a2dp_find_sep(struct avdtp *session, GSList *list,
 			if (sep->endpoint == NULL)
 				continue;
 
-			name = media_endpoint_get_sender(sep->endpoint);
+			name = sep->endpoint->get_name(sep, sep->user_data);
 			if (g_strcmp0(sender, name) != 0)
 				continue;
 		}
@@ -2028,6 +2035,7 @@ unsigned int a2dp_select_capabilities(struct avdtp *session,
 	struct a2dp_sep *sep;
 	struct avdtp_service_capability *service;
 	struct avdtp_media_codec_capability *codec;
+	int err;
 
 	sep = a2dp_select_sep(session, type, sender);
 	if (!sep) {
@@ -2068,10 +2076,10 @@ unsigned int a2dp_select_capabilities(struct avdtp *session,
 	service = avdtp_get_codec(setup->rsep);
 	codec = (struct avdtp_media_codec_capability *) service->data;
 
-	if (media_endpoint_select_configuration(sep->endpoint, codec->data,
-						service->length - sizeof(*codec),
-						select_cb, setup) ==
-						TRUE)
+	err = sep->endpoint->select_configuration(sep, codec->data,
+					service->length - sizeof(*codec),
+					select_cb, setup, sep->user_data);
+	if (err == 0)
 		return cb_data->id;
 
 fail:
diff --git a/audio/a2dp.h b/audio/a2dp.h
index 5c4232d..b50bc33 100644
--- a/audio/a2dp.h
+++ b/audio/a2dp.h
@@ -121,6 +121,31 @@ struct mpeg_codec_cap {
 
 struct a2dp_sep;
 
+typedef void (*a2dp_endpoint_cb_t) (struct a2dp_sep *sep, void *ret,
+						int size, void *user_data);
+
+struct a2dp_endpoint {
+	const char *(*get_name) (struct a2dp_sep *sep, void *user_data);
+	size_t (*get_capabilities) (struct a2dp_sep *sep,
+						uint8_t **capabilities,
+						void *user_data);
+	int (*select_configuration) (struct a2dp_sep *sep,
+						uint8_t *capabilities,
+						size_t length,
+						a2dp_endpoint_cb_t cb,
+						void *cb_data,
+						void *user_data);
+	int (*set_configuration) (struct a2dp_sep *sep,
+						struct audio_device *dev,
+						uint8_t *configuration,
+						size_t length,
+						a2dp_endpoint_cb_t cb,
+						void *cb_data,
+						void *user_data);
+	void (*clear_configuration) (struct a2dp_sep *sep, void *user_data);
+	void (*set_delay) (struct a2dp_sep *sep, uint16_t delay,
+							void *user_data);
+};
 
 typedef void (*a2dp_select_cb_t) (struct avdtp *session,
 					struct a2dp_sep *sep, GSList *caps,
@@ -138,7 +163,9 @@ void a2dp_unregister(const bdaddr_t *src);
 
 struct a2dp_sep *a2dp_add_sep(const bdaddr_t *src, uint8_t type,
 				uint8_t codec, gboolean delay_reporting,
-				struct media_endpoint *endpoint, int *err);
+				struct a2dp_endpoint *endpoint,
+				void *user_data, GDestroyNotify destroy,
+				int *err);
 void a2dp_remove_sep(struct a2dp_sep *sep);
 
 struct a2dp_sep *a2dp_get(struct avdtp *session, struct avdtp_remote_sep *sep);
diff --git a/audio/media.c b/audio/media.c
index 57bf7c9..bfd80d9 100644
--- a/audio/media.c
+++ b/audio/media.c
@@ -105,20 +105,11 @@ static void media_endpoint_cancel(struct media_endpoint *endpoint)
 	endpoint->request = NULL;
 }
 
-static void media_endpoint_remove(struct media_endpoint *endpoint)
+static void media_endpoint_destroy(struct media_endpoint *endpoint)
 {
 	struct media_adapter *adapter = endpoint->adapter;
 
-	if (g_slist_find(adapter->endpoints, endpoint) == NULL)
-		return;
-
-	info("Endpoint unregistered: sender=%s path=%s", endpoint->sender,
-			endpoint->path);
-
-	adapter->endpoints = g_slist_remove(adapter->endpoints, endpoint);
-
-	if (endpoint->sep)
-		a2dp_remove_sep(endpoint->sep);
+	DBG("sender=%s path=%s", endpoint->sender, endpoint->path);
 
 	if (endpoint->hs_watch)
 		headset_remove_state_cb(endpoint->hs_watch);
@@ -137,6 +128,23 @@ static void media_endpoint_remove(struct media_endpoint *endpoint)
 	g_free(endpoint);
 }
 
+static void media_endpoint_remove(struct media_endpoint *endpoint)
+{
+	struct media_adapter *adapter = endpoint->adapter;
+
+	if (endpoint->sep) {
+		a2dp_remove_sep(endpoint->sep);
+		return;
+	}
+
+	info("Endpoint unregistered: sender=%s path=%s", endpoint->sender,
+			endpoint->path);
+
+	adapter->endpoints = g_slist_remove(adapter->endpoints, endpoint);
+
+	media_endpoint_destroy(endpoint);
+}
+
 static void media_endpoint_exit(DBusConnection *connection, void *user_data)
 {
 	struct media_endpoint *endpoint = user_data;
@@ -156,6 +164,233 @@ static void headset_setconf_cb(struct media_endpoint *endpoint, void *ret,
 	headset_set_state(dev, HEADSET_STATE_DISCONNECTED);
 }
 
+static void clear_configuration(struct media_endpoint *endpoint)
+{
+	DBusConnection *conn;
+	DBusMessage *msg;
+	const char *path;
+	struct media_transport *transport = endpoint->transport;
+
+	if (endpoint->transport == NULL)
+		return;
+
+	if (endpoint->request)
+		media_endpoint_cancel(endpoint);
+
+	conn = endpoint->adapter->conn;
+
+	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
+						MEDIA_ENDPOINT_INTERFACE,
+						"ClearConfiguration");
+	if (msg == NULL) {
+		error("Couldn't allocate D-Bus message");
+		goto done;
+	}
+
+	path = media_transport_get_path(endpoint->transport);
+	dbus_message_append_args(msg, DBUS_TYPE_OBJECT_PATH, &path,
+							DBUS_TYPE_INVALID);
+	g_dbus_send_message(conn, msg);
+done:
+	endpoint->transport = NULL;
+	media_transport_destroy(transport);
+}
+
+static void endpoint_reply(DBusPendingCall *call, void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+	struct endpoint_request *request = endpoint->request;
+	DBusMessage *reply;
+	DBusError err;
+	gboolean value;
+	void *ret = NULL;
+	int size = -1;
+
+	/* steal_reply will always return non-NULL since the callback
+	 * is only called after a reply has been received */
+	reply = dbus_pending_call_steal_reply(call);
+
+	dbus_error_init(&err);
+	if (dbus_set_error_from_message(&err, reply)) {
+		error("Endpoint replied with an error: %s",
+				err.name);
+
+		/* Clear endpoint configuration in case of NO_REPLY error */
+		if (dbus_error_has_name(&err, DBUS_ERROR_NO_REPLY)) {
+			if (request->cb)
+				request->cb(endpoint, NULL, size,
+							request->user_data);
+			clear_configuration(endpoint);
+			dbus_message_unref(reply);
+			dbus_error_free(&err);
+			return;
+		}
+
+		dbus_error_free(&err);
+		goto done;
+	}
+
+	dbus_error_init(&err);
+	if (dbus_message_is_method_call(request->msg, MEDIA_ENDPOINT_INTERFACE,
+				"SelectConfiguration")) {
+		DBusMessageIter args, array;
+		uint8_t *configuration;
+
+		dbus_message_iter_init(reply, &args);
+
+		dbus_message_iter_recurse(&args, &array);
+
+		dbus_message_iter_get_fixed_array(&array, &configuration, &size);
+
+		ret = configuration;
+		goto done;
+	} else  if (!dbus_message_get_args(reply, &err, DBUS_TYPE_INVALID)) {
+		error("Wrong reply signature: %s", err.message);
+		dbus_error_free(&err);
+		goto done;
+	}
+
+	size = 1;
+	value = TRUE;
+	ret = &value;
+
+done:
+	dbus_message_unref(reply);
+
+	if (request->cb)
+		request->cb(endpoint, ret, size, request->user_data);
+
+	endpoint_request_free(request);
+	endpoint->request = NULL;
+}
+
+static gboolean media_endpoint_async_call(DBusConnection *conn,
+					DBusMessage *msg,
+					struct media_endpoint *endpoint,
+					media_endpoint_cb_t cb,
+					void *user_data)
+{
+	struct endpoint_request *request;
+
+	if (endpoint->request)
+		return FALSE;
+
+	request = g_new0(struct endpoint_request, 1);
+
+	/* Timeout should be less than avdtp request timeout (4 seconds) */
+	if (dbus_connection_send_with_reply(conn, msg, &request->call,
+						REQUEST_TIMEOUT) == FALSE) {
+		error("D-Bus send failed");
+		g_free(request);
+		return FALSE;
+	}
+
+	dbus_pending_call_set_notify(request->call, endpoint_reply, endpoint, NULL);
+
+	request->msg = msg;
+	request->cb = cb;
+	request->user_data = user_data;
+	endpoint->request = request;
+
+	DBG("Calling %s: name = %s path = %s", dbus_message_get_member(msg),
+			dbus_message_get_destination(msg),
+			dbus_message_get_path(msg));
+
+	return TRUE;
+}
+
+static gboolean select_configuration(struct media_endpoint *endpoint,
+						uint8_t *capabilities,
+						size_t length,
+						media_endpoint_cb_t cb,
+						void *user_data)
+{
+	DBusConnection *conn;
+	DBusMessage *msg;
+
+	if (endpoint->request != NULL)
+		return FALSE;
+
+	conn = endpoint->adapter->conn;
+
+	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
+						MEDIA_ENDPOINT_INTERFACE,
+						"SelectConfiguration");
+	if (msg == NULL) {
+		error("Couldn't allocate D-Bus message");
+		return FALSE;
+	}
+
+	dbus_message_append_args(msg, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
+					&capabilities, length,
+					DBUS_TYPE_INVALID);
+
+	return media_endpoint_async_call(conn, msg, endpoint, cb, user_data);
+}
+
+static gboolean set_configuration(struct media_endpoint *endpoint,
+					struct audio_device *device,
+					uint8_t *configuration, size_t size,
+					media_endpoint_cb_t cb,
+					void *user_data)
+{
+	DBusConnection *conn;
+	DBusMessage *msg;
+	const char *path;
+	DBusMessageIter iter;
+
+	if (endpoint->transport != NULL || endpoint->request != NULL)
+		return FALSE;
+
+	conn = endpoint->adapter->conn;
+
+	endpoint->transport = media_transport_create(conn, endpoint, device,
+						configuration, size);
+	if (endpoint->transport == NULL)
+		return FALSE;
+
+	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
+						MEDIA_ENDPOINT_INTERFACE,
+						"SetConfiguration");
+	if (msg == NULL) {
+		error("Couldn't allocate D-Bus message");
+		return FALSE;
+	}
+
+	dbus_message_iter_init_append(msg, &iter);
+
+	path = media_transport_get_path(endpoint->transport);
+	dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH, &path);
+
+	transport_get_properties(endpoint->transport, &iter);
+
+	return media_endpoint_async_call(conn, msg, endpoint, cb, user_data);
+}
+
+static void release_endpoint(struct media_endpoint *endpoint)
+{
+	DBusMessage *msg;
+
+	DBG("sender=%s path=%s", endpoint->sender, endpoint->path);
+
+	/* already exit */
+	if (endpoint->watch == 0)
+		goto done;
+
+	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
+						MEDIA_ENDPOINT_INTERFACE,
+						"Release");
+	if (msg == NULL) {
+		error("Couldn't allocate D-Bus message");
+		return;
+	}
+
+	g_dbus_send_message(endpoint->adapter->conn, msg);
+
+done:
+	media_endpoint_remove(endpoint);
+}
+
 static void headset_state_changed(struct audio_device *dev,
 					headset_state_t old_state,
 					headset_state_t new_state,
@@ -163,28 +398,144 @@ static void headset_state_changed(struct audio_device *dev,
 {
 	struct media_endpoint *endpoint = user_data;
 
-	DBG("");
-
-	switch (new_state) {
-	case HEADSET_STATE_DISCONNECTED:
-		if (endpoint->transport &&
-			media_transport_get_dev(endpoint->transport) == dev) {
-
-			DBG("Clear endpoint %p", endpoint);
-			media_endpoint_clear_configuration(endpoint);
-		}
-		break;
-	case HEADSET_STATE_CONNECTING:
-		media_endpoint_set_configuration(endpoint, dev, NULL, 0,
-						headset_setconf_cb, dev);
-		break;
-	case HEADSET_STATE_CONNECTED:
-		break;
-	case HEADSET_STATE_PLAY_IN_PROGRESS:
-		break;
-	case HEADSET_STATE_PLAYING:
-		break;
+	DBG("");
+
+	switch (new_state) {
+	case HEADSET_STATE_DISCONNECTED:
+		if (endpoint->transport &&
+			media_transport_get_dev(endpoint->transport) == dev) {
+
+			DBG("Clear endpoint %p", endpoint);
+			clear_configuration(endpoint);
+		}
+		break;
+	case HEADSET_STATE_CONNECTING:
+		set_configuration(endpoint, dev, NULL, 0, headset_setconf_cb,
+									dev);
+		break;
+	case HEADSET_STATE_CONNECTED:
+		break;
+	case HEADSET_STATE_PLAY_IN_PROGRESS:
+		break;
+	case HEADSET_STATE_PLAYING:
+		break;
+	}
+}
+
+static const char *a2dp_get_name(struct a2dp_sep *sep, void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+
+	return endpoint->sender;
+}
+
+static size_t a2dp_get_capabilities(struct a2dp_sep *sep,
+						uint8_t **capabilities,
+						void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+
+	*capabilities = endpoint->capabilities;
+	return endpoint->size;
+}
+
+struct a2dp_data {
+	a2dp_endpoint_cb_t cb;
+	void *user_data;
+};
+
+static void endpoint_cb(struct media_endpoint *endpoint,
+					void *ret, int size, void *user_data)
+{
+	struct a2dp_data *data = user_data;
+
+	data->cb(endpoint->sep, ret, size, data->user_data);
+	g_free(data);
+}
+
+static int a2dp_select_configuration(struct a2dp_sep *sep,
+						uint8_t *capabilities,
+						size_t length,
+						a2dp_endpoint_cb_t cb,
+						void *cb_data,
+						void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+	struct a2dp_data *data;
+
+	data = g_new0(struct a2dp_data, 1);
+	data->cb = cb;
+	data->user_data = cb_data;
+
+	if (select_configuration(endpoint, capabilities, length,
+						endpoint_cb, data) == TRUE)
+		return 0;
+
+	g_free(data);
+	return -ENOMEM;
+}
+
+static int a2dp_set_configuration(struct a2dp_sep *sep,
+						struct audio_device *dev,
+						uint8_t *configuration,
+						size_t length,
+						a2dp_endpoint_cb_t cb,
+						void *cb_data,
+						void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+	struct a2dp_data *data;
+
+	data = g_new0(struct a2dp_data, 1);
+	data->cb = cb;
+	data->user_data = cb_data;
+
+	if (set_configuration(endpoint, dev, configuration, length,
+						endpoint_cb, data) == TRUE)
+		return 0;
+
+	g_free(data);
+	return -ENOMEM;
+}
+
+static void a2dp_clear_configuration(struct a2dp_sep *sep, void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+
+	clear_configuration(endpoint);
+}
+
+static void a2dp_set_delay(struct a2dp_sep *sep, uint16_t delay,
+							void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+
+	if (endpoint->transport == NULL)
+		return;
+
+	media_transport_update_delay(endpoint->transport, delay);
+}
+
+static struct a2dp_endpoint a2dp_endpoint = {
+	.get_name = a2dp_get_name,
+	.get_capabilities = a2dp_get_capabilities,
+	.select_configuration = a2dp_select_configuration,
+	.set_configuration = a2dp_set_configuration,
+	.clear_configuration = a2dp_clear_configuration,
+	.set_delay = a2dp_set_delay
+};
+
+static void a2dp_destroy_endpoint(void *user_data)
+{
+	struct media_endpoint *endpoint = user_data;
+
+	if (endpoint->transport) {
+		media_transport_destroy(endpoint->transport);
+		endpoint->transport = NULL;
 	}
+
+	endpoint->sep = NULL;
+	release_endpoint(endpoint);
 }
 
 static struct media_endpoint *media_endpoint_create(struct media_adapter *adapter,
@@ -216,13 +567,15 @@ static struct media_endpoint *media_endpoint_create(struct media_adapter *adapte
 	if (strcasecmp(uuid, A2DP_SOURCE_UUID) == 0) {
 		endpoint->sep = a2dp_add_sep(&adapter->src,
 					AVDTP_SEP_TYPE_SOURCE, codec,
-					delay_reporting, endpoint, err);
+					delay_reporting, &a2dp_endpoint,
+					endpoint, a2dp_destroy_endpoint, err);
 		if (endpoint->sep == NULL)
 			goto failed;
 	} else if (strcasecmp(uuid, A2DP_SINK_UUID) == 0) {
 		endpoint->sep = a2dp_add_sep(&adapter->src,
-						AVDTP_SEP_TYPE_SINK, codec,
-						delay_reporting, endpoint, err);
+					AVDTP_SEP_TYPE_SOURCE, codec,
+					delay_reporting, &a2dp_endpoint,
+					endpoint, a2dp_destroy_endpoint, err);
 		if (endpoint->sep == NULL)
 			goto failed;
 	} else if (strcasecmp(uuid, HFP_AG_UUID) == 0 ||
@@ -234,9 +587,8 @@ static struct media_endpoint *media_endpoint_create(struct media_adapter *adapte
 		dev = manager_find_device(NULL, &adapter->src, BDADDR_ANY,
 						AUDIO_HEADSET_INTERFACE, TRUE);
 		if (dev)
-			media_endpoint_set_configuration(endpoint, dev, NULL,
-							0, headset_setconf_cb,
-							dev);
+			set_configuration(endpoint, dev, NULL, 0,
+						headset_setconf_cb, dev);
 	} else {
 		if (err)
 			*err = -EINVAL;
@@ -285,11 +637,6 @@ static struct media_endpoint *media_adapter_find_endpoint(
 	return NULL;
 }
 
-const char *media_endpoint_get_sender(struct media_endpoint *endpoint)
-{
-	return endpoint->sender;
-}
-
 static int parse_properties(DBusMessageIter *props, const char **uuid,
 				gboolean *delay_reporting, uint8_t *codec,
 				uint8_t **capabilities, int *size)
@@ -414,8 +761,8 @@ static void path_free(void *data)
 {
 	struct media_adapter *adapter = data;
 
-	g_slist_free_full(adapter->endpoints,
-				(GDestroyNotify) media_endpoint_release);
+	while (adapter->endpoints)
+		release_endpoint(adapter->endpoints->data);
 
 	dbus_connection_unref(adapter->conn);
 
@@ -465,239 +812,6 @@ void media_unregister(const char *path)
 	}
 }
 
-size_t media_endpoint_get_capabilities(struct media_endpoint *endpoint,
-					uint8_t **capabilities)
-{
-	*capabilities = endpoint->capabilities;
-	return endpoint->size;
-}
-
-static void endpoint_reply(DBusPendingCall *call, void *user_data)
-{
-	struct media_endpoint *endpoint = user_data;
-	struct endpoint_request *request = endpoint->request;
-	DBusMessage *reply;
-	DBusError err;
-	gboolean value;
-	void *ret = NULL;
-	int size = -1;
-
-	/* steal_reply will always return non-NULL since the callback
-	 * is only called after a reply has been received */
-	reply = dbus_pending_call_steal_reply(call);
-
-	dbus_error_init(&err);
-	if (dbus_set_error_from_message(&err, reply)) {
-		error("Endpoint replied with an error: %s",
-				err.name);
-
-		/* Clear endpoint configuration in case of NO_REPLY error */
-		if (dbus_error_has_name(&err, DBUS_ERROR_NO_REPLY)) {
-			if (request->cb)
-				request->cb(endpoint, NULL, size,
-							request->user_data);
-			media_endpoint_clear_configuration(endpoint);
-			dbus_message_unref(reply);
-			dbus_error_free(&err);
-			return;
-		}
-
-		dbus_error_free(&err);
-		goto done;
-	}
-
-	dbus_error_init(&err);
-	if (dbus_message_is_method_call(request->msg, MEDIA_ENDPOINT_INTERFACE,
-				"SelectConfiguration")) {
-		DBusMessageIter args, array;
-		uint8_t *configuration;
-
-		dbus_message_iter_init(reply, &args);
-
-		dbus_message_iter_recurse(&args, &array);
-
-		dbus_message_iter_get_fixed_array(&array, &configuration, &size);
-
-		ret = configuration;
-		goto done;
-	} else  if (!dbus_message_get_args(reply, &err, DBUS_TYPE_INVALID)) {
-		error("Wrong reply signature: %s", err.message);
-		dbus_error_free(&err);
-		goto done;
-	}
-
-	size = 1;
-	value = TRUE;
-	ret = &value;
-
-done:
-	dbus_message_unref(reply);
-
-	if (request->cb)
-		request->cb(endpoint, ret, size, request->user_data);
-
-	endpoint_request_free(request);
-	endpoint->request = NULL;
-}
-
-static gboolean media_endpoint_async_call(DBusConnection *conn,
-					DBusMessage *msg,
-					struct media_endpoint *endpoint,
-					media_endpoint_cb_t cb,
-					void *user_data)
-{
-	struct endpoint_request *request;
-
-	if (endpoint->request)
-		return FALSE;
-
-	request = g_new0(struct endpoint_request, 1);
-
-	/* Timeout should be less than avdtp request timeout (4 seconds) */
-	if (dbus_connection_send_with_reply(conn, msg, &request->call,
-						REQUEST_TIMEOUT) == FALSE) {
-		error("D-Bus send failed");
-		g_free(request);
-		return FALSE;
-	}
-
-	dbus_pending_call_set_notify(request->call, endpoint_reply, endpoint, NULL);
-
-	request->msg = msg;
-	request->cb = cb;
-	request->user_data = user_data;
-	endpoint->request = request;
-
-	DBG("Calling %s: name = %s path = %s", dbus_message_get_member(msg),
-			dbus_message_get_destination(msg),
-			dbus_message_get_path(msg));
-
-	return TRUE;
-}
-
-gboolean media_endpoint_set_configuration(struct media_endpoint *endpoint,
-					struct audio_device *device,
-					uint8_t *configuration, size_t size,
-					media_endpoint_cb_t cb,
-					void *user_data)
-{
-	DBusConnection *conn;
-	DBusMessage *msg;
-	const char *path;
-	DBusMessageIter iter;
-
-	if (endpoint->transport != NULL || endpoint->request != NULL)
-		return FALSE;
-
-	conn = endpoint->adapter->conn;
-
-	endpoint->transport = media_transport_create(conn, endpoint, device,
-						configuration, size);
-	if (endpoint->transport == NULL)
-		return FALSE;
-
-	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
-						MEDIA_ENDPOINT_INTERFACE,
-						"SetConfiguration");
-	if (msg == NULL) {
-		error("Couldn't allocate D-Bus message");
-		return FALSE;
-	}
-
-	dbus_message_iter_init_append(msg, &iter);
-
-	path = media_transport_get_path(endpoint->transport);
-	dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH, &path);
-
-	transport_get_properties(endpoint->transport, &iter);
-
-	return media_endpoint_async_call(conn, msg, endpoint, cb, user_data);
-}
-
-gboolean media_endpoint_select_configuration(struct media_endpoint *endpoint,
-						uint8_t *capabilities,
-						size_t length,
-						media_endpoint_cb_t cb,
-						void *user_data)
-{
-	DBusConnection *conn;
-	DBusMessage *msg;
-
-	if (endpoint->request != NULL)
-		return FALSE;
-
-	conn = endpoint->adapter->conn;
-
-	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
-						MEDIA_ENDPOINT_INTERFACE,
-						"SelectConfiguration");
-	if (msg == NULL) {
-		error("Couldn't allocate D-Bus message");
-		return FALSE;
-	}
-
-	dbus_message_append_args(msg, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
-					&capabilities, length,
-					DBUS_TYPE_INVALID);
-
-	return media_endpoint_async_call(conn, msg, endpoint, cb, user_data);
-}
-
-void media_endpoint_clear_configuration(struct media_endpoint *endpoint)
-{
-	DBusConnection *conn;
-	DBusMessage *msg;
-	const char *path;
-	struct media_transport *transport = endpoint->transport;
-
-	if (endpoint->transport == NULL)
-		return;
-
-	if (endpoint->request)
-		media_endpoint_cancel(endpoint);
-
-	conn = endpoint->adapter->conn;
-
-	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
-						MEDIA_ENDPOINT_INTERFACE,
-						"ClearConfiguration");
-	if (msg == NULL) {
-		error("Couldn't allocate D-Bus message");
-		goto done;
-	}
-
-	path = media_transport_get_path(endpoint->transport);
-	dbus_message_append_args(msg, DBUS_TYPE_OBJECT_PATH, &path,
-							DBUS_TYPE_INVALID);
-	g_dbus_send_message(conn, msg);
-done:
-	endpoint->transport = NULL;
-	media_transport_destroy(transport);
-}
-
-void media_endpoint_release(struct media_endpoint *endpoint)
-{
-	DBusMessage *msg;
-
-	DBG("sender=%s path=%s", endpoint->sender, endpoint->path);
-
-	/* already exit */
-	if (endpoint->watch == 0)
-		return;
-
-	msg = dbus_message_new_method_call(endpoint->sender, endpoint->path,
-						MEDIA_ENDPOINT_INTERFACE,
-						"Release");
-	if (msg == NULL) {
-		error("Couldn't allocate D-Bus message");
-		return;
-	}
-
-	g_dbus_send_message(endpoint->adapter->conn, msg);
-
-	media_endpoint_remove(endpoint);
-}
-
 struct a2dp_sep *media_endpoint_get_sep(struct media_endpoint *endpoint)
 {
 	return endpoint->sep;
@@ -712,9 +826,3 @@ uint8_t media_endpoint_get_codec(struct media_endpoint *endpoint)
 {
 	return endpoint->codec;
 }
-
-struct media_transport *media_endpoint_get_transport(
-					struct media_endpoint *endpoint)
-{
-	return endpoint->transport;
-}
diff --git a/audio/media.h b/audio/media.h
index d089103..ee9a51e 100644
--- a/audio/media.h
+++ b/audio/media.h
@@ -30,23 +30,6 @@ typedef void (*media_endpoint_cb_t) (struct media_endpoint *endpoint,
 int media_register(DBusConnection *conn, const char *path, const bdaddr_t *src);
 void media_unregister(const char *path);
 
-const char *media_endpoint_get_sender(struct media_endpoint *endpoint);
-
-size_t media_endpoint_get_capabilities(struct media_endpoint *endpoint,
-					uint8_t **capabilities);
-gboolean media_endpoint_set_configuration(struct media_endpoint *endpoint,
-					struct audio_device *device,
-					uint8_t *configuration, size_t size,
-					media_endpoint_cb_t cb,
-					void *user_data);
-gboolean media_endpoint_select_configuration(struct media_endpoint *endpoint,
-						uint8_t *capabilities,
-						size_t length,
-						media_endpoint_cb_t cb,
-						void *user_data);
-void media_endpoint_clear_configuration(struct media_endpoint *endpoint);
-void media_endpoint_release(struct media_endpoint *endpoint);
-
 struct a2dp_sep *media_endpoint_get_sep(struct media_endpoint *endpoint);
 const char *media_endpoint_get_uuid(struct media_endpoint *endpoint);
 uint8_t media_endpoint_get_codec(struct media_endpoint *endpoint);
diff --git a/audio/transport.c b/audio/transport.c
index cd2de37..f915262 100644
--- a/audio/transport.c
+++ b/audio/transport.c
@@ -99,7 +99,6 @@ void media_transport_destroy(struct media_transport *transport)
 	char *path;
 
 	path = g_strdup(transport->path);
-
 	g_dbus_unregister_interface(transport->conn, path,
 						MEDIA_TRANSPORT_INTERFACE);
 
@@ -922,4 +921,4 @@ void media_transport_update_delay(struct media_transport *transport,
 struct audio_device *media_transport_get_dev(struct media_transport *transport)
 {
 	return transport->device;
-}
\ No newline at end of file
+}
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: bluetoothd crashes on exit when Media is enabled
  2011-08-07 13:40 ` Luiz Augusto von Dentz
@ 2011-08-07 14:13   ` Daniel Schaal
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Schaal @ 2011-08-07 14:13 UTC (permalink / raw)
  To: linux-bluetooth

[-- Attachment #1: Type: Text/Plain, Size: 234 bytes --]

> Hi Daniel,
> 
> Could you please try with attached patch. It has been posted here
> before, but we decide to rework it a little bit.

Seems to work fine now.

Attached is the log of bluetoothd with the patch.

Thanks,
Daniel Schaal

[-- Attachment #2: bluetoothd.log --]
[-- Type: text/plain, Size: 35130 bytes --]

bluetoothd[26883]: Bluetooth daemon 4.96
bluetoothd[26883]: src/main.c:parse_config() parsing main.conf
bluetoothd[26883]: src/main.c:parse_config() discovto=0
bluetoothd[26883]: src/main.c:parse_config() pairto=0
bluetoothd[26883]: src/main.c:parse_config() pageto=8192
bluetoothd[26883]: src/main.c:parse_config() name=%h-%d
bluetoothd[26883]: src/main.c:parse_config() class=0x000100
bluetoothd[26883]: src/main.c:parse_config() discov_interval=30
bluetoothd[26883]: src/main.c:parse_config() Key file does not have key 'DeviceID'
bluetoothd[26883]: Starting SDP server
bluetoothd[26883]: src/plugin.c:plugin_init() Loading builtin plugins
bluetoothd[26883]: Excluding (conf) pnat
bluetoothd[26883]: src/plugin.c:add_plugin() Loading audio plugin
bluetoothd[26883]: Excluding (conf) sap
bluetoothd[26883]: Excluding (conf) input
bluetoothd[26883]: src/plugin.c:add_plugin() Loading serial plugin
bluetoothd[26883]: Excluding (conf) network
bluetoothd[26883]: Excluding (conf) proximity
bluetoothd[26883]: src/plugin.c:add_plugin() Loading service plugin
bluetoothd[26883]: Excluding (conf) health
bluetoothd[26883]: Excluding (conf) thermometer
bluetoothd[26883]: src/plugin.c:add_plugin() Loading hciops plugin
bluetoothd[26883]: src/plugin.c:add_plugin() Loading mgmtops plugin
bluetoothd[26883]: src/plugin.c:add_plugin() Loading formfactor plugin
bluetoothd[26883]: src/plugin.c:add_plugin() Loading storage plugin
bluetoothd[26883]: src/plugin.c:add_plugin() Loading adaptername plugin
bluetoothd[26883]: Excluding (conf) wiimote
bluetoothd[26883]: Excluding (conf) dbusoob
bluetoothd[26883]: src/plugin.c:plugin_init() Loading plugins /usr/lib/x86_64-linux-gnu/bluetooth/plugins
bluetoothd[26883]: plugins/service.c:register_interface() path /org/bluez/26883/any
bluetoothd[26883]: plugins/service.c:register_interface() Registered interface org.bluez.Service on path /org/bluez/26883/any
bluetoothd[26883]: audio/unix.c:unix_init() Unix socket created: 7
bluetoothd[26883]: plugins/hciops.c:hciops_init() 
bluetoothd[26883]: Bluetooth Management interface initialized
bluetoothd[26883]: src/main.c:main() Entering main loop
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 11 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:read_version_complete() version 0 revision 1
bluetoothd[26883]: src/rfkill.c:rfkill_event() RFKILL event idx 0 type 1 op 0 soft 0 hard 0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 12 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:add_controller() Added controller 0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_remove_uuid() index 0
bluetoothd[26883]: src/rfkill.c:rfkill_event() RFKILL event idx 1 type 2 op 0 soft 0 hard 0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 10 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 285 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:read_info_complete() hci0 type 0 addr 00:1B:DC:00:30:05
bluetoothd[26883]: plugins/mgmtops.c:read_info_complete() hci0 class 0x580100
bluetoothd[26883]: plugins/mgmtops.c:read_info_complete() hci0 manufacturer 10 HCI ver 4:4839
bluetoothd[26883]: plugins/mgmtops.c:read_info_complete() hci0 enabled 1 discoverable 0 pairable 1 sec_mode 4
bluetoothd[26883]: plugins/mgmtops.c:read_info_complete() hci0 name CSR - bc4
bluetoothd[26883]: src/adapter.c:btd_adapter_ref() 0x7fe2517de090: ref=1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_read_bdaddr() index 0 addr 00:1B:DC:00:30:05
bluetoothd[26883]: src/sdpd-database.c:sdp_init_services_list() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: plugins/service.c:register_interface() path /org/bluez/26883/hci0
bluetoothd[26883]: plugins/service.c:register_interface() Registered interface org.bluez.Service on path /org/bluez/26883/hci0
bluetoothd[26883]: serial/manager.c:proxy_probe() path /org/bluez/26883/hci0
bluetoothd[26883]: src/adapter.c:btd_adapter_ref() 0x7fe2517de090: ref=2
bluetoothd[26883]: serial/proxy.c:proxy_register() Registered interface org.bluez.SerialProxyManager on path /org/bluez/26883/hci0
bluetoothd[26883]: audio/manager.c:media_server_probe() path /org/bluez/26883/hci0
bluetoothd[26883]: src/adapter.c:btd_adapter_ref() 0x7fe2517de090: ref=3
bluetoothd[26883]: audio/manager.c:audio_adapter_ref() 0x7fe2517db990: ref=1
bluetoothd[26883]: audio/manager.c:headset_server_probe() path /org/bluez/26883/hci0
bluetoothd[26883]: audio/manager.c:audio_adapter_ref() 0x7fe2517db990: ref=2
bluetoothd[26883]: audio/manager.c:state_changed() /org/bluez/26883/hci0 powered on
bluetoothd[26883]: audio/telephony.c:telephony_init() 
bluetoothd[26883]: audio/headset.c:telephony_ready_ind() Telephony plugin initialized
bluetoothd[26883]: audio/headset.c:print_ag_features() HFP AG features: "Ability to reject a call" "Enhanced call status" "Extended Error Result Codes" 
bluetoothd[26883]: audio/manager.c:headset_server_init() audio.conf: Key file does not have key 'Master'
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10000
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000003-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001108-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001112-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001203-0000-1000-8000-00805f9
bluetoothd[26883]: audio/headset.c:headset_config_init() audio.conf: Key file does not have key 'SCORouting'
bluetoothd[26883]: plugins/mgmtops.c:mgmt_fast_connectable() index 0 enable 0
bluetoothd[26883]: Changing fast connectable for hci0 failed
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10001
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000003-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000111e-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000111f-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001203-0000-1000-8000-00805f9
bluetoothd[26883]: audio/manager.c:a2dp_server_probe() path /org/bluez/26883/hci0
bluetoothd[26883]: audio/manager.c:audio_adapter_ref() 0x7fe2517db990: ref=3
bluetoothd[26883]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have key 'Disable'
bluetoothd[26883]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[26883]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[26883]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[26883]: audio/a2dp.c:a2dp_register() audio.conf: Key file does not have group 'A2DP'
bluetoothd[26883]: audio/avdtp.c:avdtp_init() audio.conf: Key file does not have key 'Master'
bluetoothd[26883]: audio/avdtp.c:avdtp_register_sep() SEP 0x7fe2517dfbc0 registered: type:0 codec:0 seid:1
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10002
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000019-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110a-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110d-0000-1000-8000-00805f9
bluetoothd[26883]: audio/manager.c:avrcp_server_probe() path /org/bluez/26883/hci0
bluetoothd[26883]: audio/manager.c:audio_adapter_ref() 0x7fe2517db990: ref=4
bluetoothd[26883]: audio/control.c:avrcp_register() audio.conf: Key file does not have key 'Master'
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10003
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110c-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Adding record with handle 0x10004
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000017-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00000100-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 00001002-0000-1000-8000-00805f9
bluetoothd[26883]: src/sdpd-service.c:add_record_to_server() Record pattern UUID 0000110e-0000-1000-8000-00805f9
bluetoothd[26883]: plugins/adaptername.c:adaptername_probe() Setting name 'CSR - bc4' for device 'hci0'
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_name() index 0, name CSR - bc4
bluetoothd[26883]: plugins/formfactor.c:formfactor_probe() Setting 0x000110 for major/minor device class
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_dev_class() index 0 major 1 minor 16
bluetoothd[26883]: plugins/mgmtops.c:mgmt_unblock_device() index 0 addr 00:00:00:00:00:00
bluetoothd[26883]: src/device.c:device_create() Creating device /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: src/device.c:device_set_bonded() bonded 1
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517e1730: ref=1
bluetoothd[26883]: src/device.c:device_set_temporary() temporary 0
bluetoothd[26883]: src/device.c:device_probe_drivers() Probing drivers for 00:0B:E4:91:5D:0D
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D: 00001108-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D: 0000111e-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: src/adapter.c:adapter_get_device() 00:0B:E4:91:5D:0D
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517e1730: ref=2
bluetoothd[26883]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Headset record
bluetoothd[26883]: audio/headset.c:headset_init() Registered interface org.bluez.Headset on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Handsfree record
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Audio Sink
bluetoothd[26883]: audio/sink.c:sink_init() Registered interface org.bluez.AudioSink on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/manager.c:handle_uuid() Found AV Target
bluetoothd[26883]: audio/control.c:control_init() Registered interface org.bluez.Control on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/manager.c:handle_uuid() Found AV Remote
bluetoothd[26883]: src/device.c:device_create() Creating device /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[26883]: src/device.c:device_set_bonded() bonded 1
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517e45d0: ref=1
bluetoothd[26883]: src/device.c:device_set_temporary() temporary 0
bluetoothd[26883]: src/device.c:device_probe_drivers() Probing drivers for 00:22:98:CD:7A:E9
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9: 00001105-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9: 00001112-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9: 0000111f-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: src/adapter.c:adapter_get_device() 00:22:98:CD:7A:E9
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517e45d0: ref=2
bluetoothd[26883]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[26883]: audio/manager.c:handle_uuid() server not enabled for 0000111f-0000-1000-8000-00805f9b34fb (0x111f)
bluetoothd[26883]: audio/manager.c:handle_uuid() server not enabled for 00001112-0000-1000-8000-00805f9b34fb (0x1112)
bluetoothd[26883]: src/device.c:device_create() Creating device /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[26883]: src/device.c:device_set_bonded() bonded 1
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517e6a10: ref=1
bluetoothd[26883]: src/device.c:device_set_temporary() temporary 0
bluetoothd[26883]: src/device.c:device_probe_drivers() Probing drivers for E0:A6:70:2F:3A:B6
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00000002-0000-1000-8000-0002ee000002
bluetoothd[26883]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00001101-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00001103-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00001105-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00001106-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00001112-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 0000111f-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 0000112d-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 0000112f-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00005002-0000-1000-8000-0002ee000001
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00005557-0000-1000-8000-0002ee000001
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6: 00005601-0000-1000-8000-0002ee000001
bluetoothd[26883]: src/adapter.c:adapter_get_device() E0:A6:70:2F:3A:B6
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517e6a10: ref=2
bluetoothd[26883]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[26883]: audio/manager.c:handle_uuid() server not enabled for 00001112-0000-1000-8000-00805f9b34fb (0x1112)
bluetoothd[26883]: audio/manager.c:handle_uuid() server not enabled for 0000111f-0000-1000-8000-00805f9b34fb (0x111f)
bluetoothd[26883]: src/device.c:device_create() Creating device /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: src/device.c:device_set_bonded() bonded 1
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517eee40: ref=1
bluetoothd[26883]: src/device.c:device_set_temporary() temporary 0
bluetoothd[26883]: src/device.c:device_probe_drivers() Probing drivers for 40:2B:A1:61:DD:C5
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5: 00001108-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5: 0000111e-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: src/adapter.c:adapter_get_device() 40:2B:A1:61:DD:C5
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517eee40: ref=2
bluetoothd[26883]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Headset record
bluetoothd[26883]: audio/headset.c:headset_init() Registered interface org.bluez.Headset on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Handsfree record
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Audio Sink
bluetoothd[26883]: audio/sink.c:sink_init() Registered interface org.bluez.AudioSink on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/manager.c:handle_uuid() Found AV Target
bluetoothd[26883]: audio/control.c:control_init() Registered interface org.bluez.Control on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/manager.c:handle_uuid() Found AV Remote
bluetoothd[26883]: src/device.c:device_create() Creating device /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: src/device.c:device_set_bonded() bonded 1
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517f2530: ref=1
bluetoothd[26883]: src/device.c:device_set_temporary() temporary 0
bluetoothd[26883]: src/device.c:device_probe_drivers() Probing drivers for 00:22:FC:74:CA:27
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27: 00001108-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: serial/port.c:create_serial_device() Registered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: serial/manager.c:serial_probe() path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27: 0000111e-0000-1000-8000-00805f9b34fb
bluetoothd[26883]: src/adapter.c:adapter_get_device() 00:22:FC:74:CA:27
bluetoothd[26883]: src/device.c:btd_device_ref() 0x7fe2517f2530: ref=2
bluetoothd[26883]: audio/device.c:audio_device_register() Registered interface org.bluez.Audio on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Headset record
bluetoothd[26883]: audio/headset.c:headset_init() Registered interface org.bluez.Headset on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Handsfree record
bluetoothd[26883]: audio/manager.c:handle_uuid() Found Audio Sink
bluetoothd[26883]: audio/sink.c:sink_init() Registered interface org.bluez.AudioSink on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/manager.c:handle_uuid() Found AV Target
bluetoothd[26883]: audio/control.c:control_init() Registered interface org.bluez.Control on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/manager.c:handle_uuid() Found AV Remote
bluetoothd[26883]: plugins/mgmtops.c:mgmt_load_keys() index 0 keys 5 debug_keys 0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_get_conn_list() index 0
bluetoothd[26883]: src/manager.c:btd_manager_register_adapter() Adapter /org/bluez/26883/hci0 registered
bluetoothd[26883]: src/adapter.c:btd_adapter_ref() 0x7fe2517de090: ref=4
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_name() index 0, name CSR - bc4
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_dev_class() index 0 major 1 minor 0
bluetoothd[26883]: audio/manager.c:state_changed() /org/bluez/26883/hci0 powered on
bluetoothd[26883]: plugins/mgmtops.c:mgmt_disable_cod_cache() index 0
bluetoothd[26883]: Adapter /org/bluez/26883/hci0 has been enabled
bluetoothd[26883]: src/adapter.c:adapter_mode_changed() old 0x00 new 0x02
bluetoothd[26883]: src/adapter.c:adapter_set_limited_discoverable() FALSE
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_limited_discoverable() index 0 limited 0
bluetoothd[26883]: src/adapter.c:set_mode_complete() 
bluetoothd[26883]: src/adapter.c:btd_adapter_unref() 0x7fe2517de090: ref=3
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() set_service_cache complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() set_dev_class complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 9 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_status() status 1 opcode 30 (index 0)
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 257 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:set_local_name_complete() hci0 name CSR - bc4
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() set_dev_class complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() set_service_cache complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 257 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:set_local_name_complete() hci0 name CSR - bc4
bluetoothd[26883]: Endpoint registered: sender=:1.36 path=/MediaEndpoint/HFPAG
bluetoothd[26883]: audio/avdtp.c:avdtp_register_sep() SEP 0x7fe2517f6450 registered: type:0 codec:0 seid:2
bluetoothd[26883]: Endpoint registered: sender=:1.36 path=/MediaEndpoint/A2DPSource
bluetoothd[26883]: audio/avdtp.c:avdtp_register_sep() SEP 0x7fe2517f6610 registered: type:0 codec:0 seid:3
bluetoothd[26883]: Endpoint registered: sender=:1.36 path=/MediaEndpoint/A2DPSink
bluetoothd[26883]: src/adapter.c:register_agent() Agent registered for hci0 at :1.11:/blueDevil_agent
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_io_capability() hci0 io_capability 0x01
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() set_io_capability complete
bluetoothd[26883]: plugins/mgmtops.c:mgmt_add_uuid() index 0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() cond 1
bluetoothd[26883]: plugins/mgmtops.c:mgmt_event() Received 8 bytes from management socket
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() 
bluetoothd[26883]: plugins/mgmtops.c:mgmt_cmd_complete() add_uuid complete
bluetoothd[26883]: src/adapter.c:adapter_remove() Removing adapter /org/bluez/26883/hci0
bluetoothd[26883]: src/device.c:device_remove() Removing device /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: serial/manager.c:serial_remove() path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/unix.c:unix_device_removed() unix_device_removed(0x7fe2517e3e30)
bluetoothd[26883]: audio/headset.c:path_unregister() Unregistered interface org.bluez.Headset on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/sink.c:path_unregister() Unregistered interface org.bluez.AudioSink on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: audio/control.c:path_unregister() Unregistered interface org.bluez.Control on path /org/bluez/26883/hci0/dev_00_0B_E4_91_5D_0D
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517e1730: ref=1
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517e1730: ref=0
bluetoothd[26883]: src/device.c:device_free() 0x7fe2517e1730
bluetoothd[26883]: src/device.c:device_remove() Removing device /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[26883]: serial/manager.c:serial_remove() path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[26883]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_00_22_98_CD_7A_E9
bluetoothd[26883]: audio/unix.c:unix_device_removed() unix_device_removed(0x7fe2517e65f0)
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517e45d0: ref=1
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517e45d0: ref=0
bluetoothd[26883]: src/device.c:device_free() 0x7fe2517e45d0
bluetoothd[26883]: src/device.c:device_remove() Removing device /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[26883]: serial/manager.c:serial_remove() path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[26883]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_E0_A6_70_2F_3A_B6
bluetoothd[26883]: audio/unix.c:unix_device_removed() unix_device_removed(0x7fe2517eed10)
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517e6a10: ref=1
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517e6a10: ref=0
bluetoothd[26883]: src/device.c:device_free() 0x7fe2517e6a10
bluetoothd[26883]: src/device.c:device_remove() Removing device /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: serial/manager.c:serial_remove() path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/unix.c:unix_device_removed() unix_device_removed(0x7fe2517f21f0)
bluetoothd[26883]: audio/headset.c:path_unregister() Unregistered interface org.bluez.Headset on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/sink.c:path_unregister() Unregistered interface org.bluez.AudioSink on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: audio/control.c:path_unregister() Unregistered interface org.bluez.Control on path /org/bluez/26883/hci0/dev_40_2B_A1_61_DD_C5
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517eee40: ref=1
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517eee40: ref=0
bluetoothd[26883]: src/device.c:device_free() 0x7fe2517eee40
bluetoothd[26883]: src/device.c:device_remove() Removing device /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: serial/manager.c:serial_remove() path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: serial/port.c:path_unregister() Unregistered interface org.bluez.Serial on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/unix.c:unix_device_removed() unix_device_removed(0x7fe2517f4c70)
bluetoothd[26883]: audio/headset.c:path_unregister() Unregistered interface org.bluez.Headset on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/sink.c:path_unregister() Unregistered interface org.bluez.AudioSink on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: audio/control.c:path_unregister() Unregistered interface org.bluez.Control on path /org/bluez/26883/hci0/dev_00_22_FC_74_CA_27
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517f2530: ref=1
bluetoothd[26883]: src/device.c:btd_device_unref() 0x7fe2517f2530: ref=0
bluetoothd[26883]: src/device.c:device_free() 0x7fe2517f2530
bluetoothd[26883]: audio/manager.c:avrcp_server_remove() path /org/bluez/26883/hci0
bluetoothd[26883]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10004
bluetoothd[26883]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10003
bluetoothd[26883]: audio/manager.c:audio_adapter_unref() 0x7fe2517db990: ref=3
bluetoothd[26883]: audio/manager.c:a2dp_server_remove() path /org/bluez/26883/hci0
bluetoothd[26883]: audio/avdtp.c:avdtp_unregister_sep() SEP 0x7fe2517dfbc0 unregistered: type:0 codec:0 seid:1
bluetoothd[26883]: audio/media.c:release_endpoint() sender=:1.36 path=/MediaEndpoint/A2DPSource
bluetoothd[26883]: Endpoint unregistered: sender=:1.36 path=/MediaEndpoint/A2DPSource
bluetoothd[26883]: audio/media.c:media_endpoint_destroy() sender=:1.36 path=/MediaEndpoint/A2DPSource
bluetoothd[26883]: audio/avdtp.c:avdtp_unregister_sep() SEP 0x7fe2517f6450 unregistered: type:0 codec:0 seid:2
bluetoothd[26883]: audio/media.c:release_endpoint() sender=:1.36 path=/MediaEndpoint/A2DPSink
bluetoothd[26883]: Endpoint unregistered: sender=:1.36 path=/MediaEndpoint/A2DPSink
bluetoothd[26883]: audio/media.c:media_endpoint_destroy() sender=:1.36 path=/MediaEndpoint/A2DPSink
bluetoothd[26883]: audio/avdtp.c:avdtp_unregister_sep() SEP 0x7fe2517f6610 unregistered: type:0 codec:0 seid:3
bluetoothd[26883]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10002
bluetoothd[26883]: audio/manager.c:audio_adapter_unref() 0x7fe2517db990: ref=2
bluetoothd[26883]: audio/manager.c:headset_server_remove() path /org/bluez/26883/hci0
bluetoothd[26883]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10000
bluetoothd[26883]: src/sdpd-service.c:remove_record_from_server() Removing record with handle 0x10001
bluetoothd[26883]: audio/manager.c:audio_adapter_unref() 0x7fe2517db990: ref=1
bluetoothd[26883]: audio/manager.c:media_server_remove() path /org/bluez/26883/hci0
bluetoothd[26883]: audio/media.c:release_endpoint() sender=:1.36 path=/MediaEndpoint/HFPAG
bluetoothd[26883]: Endpoint unregistered: sender=:1.36 path=/MediaEndpoint/HFPAG
bluetoothd[26883]: audio/media.c:media_endpoint_destroy() sender=:1.36 path=/MediaEndpoint/HFPAG
bluetoothd[26883]: audio/manager.c:audio_adapter_unref() 0x7fe2517db990: ref=0
bluetoothd[26883]: src/adapter.c:btd_adapter_unref() 0x7fe2517de090: ref=2
bluetoothd[26883]: serial/manager.c:proxy_remove() path /org/bluez/26883/hci0
bluetoothd[26883]: src/adapter.c:btd_adapter_unref() 0x7fe2517de090: ref=1
bluetoothd[26883]: plugins/service.c:unregister_interface() path /org/bluez/26883/hci0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_restore_powered() index 0
bluetoothd[26883]: src/adapter.c:btd_adapter_unref() 0x7fe2517de090: ref=0
bluetoothd[26883]: plugins/mgmtops.c:mgmt_set_io_capability() hci0 io_capability 0x03
bluetoothd[26883]: src/agent.c:agent_release() Releasing agent :1.11, /blueDevil_agent
bluetoothd[26883]: src/adapter.c:adapter_free() 0x7fe2517de090
bluetoothd[26883]: src/plugin.c:plugin_cleanup() Cleanup plugins
bluetoothd[26883]: plugins/service.c:unregister_interface() path /org/bluez/26883/any
bluetoothd[26883]: plugins/hciops.c:hciops_exit() 
bluetoothd[26883]: plugins/hciops.c:hciops_cleanup() 
bluetoothd[26883]: Stopping SDP server
bluetoothd[26883]: Exit

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-08-07 14:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-06 11:17 bluetoothd crashes on exit when Media is enabled Daniel Schaal
2011-08-07 13:40 ` Luiz Augusto von Dentz
2011-08-07 14:13   ` Daniel Schaal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).