[pulseaudio-discuss] Arduino Tian issue changing card profile to A2DP with bluetooth headset

Tanu Kaskinen tanuk at iki.fi
Fri Oct 2 06:06:10 PDT 2015


On Thu, 2015-10-01 at 23:26 +0200, Mimmo wrote:
> Debugging using gdb pulseaudio when the pactl set-card-profile 0 
> a2dp_sink is launched and the cpu utilization of pulseaudio reach 99%
> 
> Breaking gdb this its the backtrace:
> 
> (gdb) c
> Continuing.
> ^C
> Program received signal SIGINT, Interrupt.
> check_match (sym=sym at entry=0x77ef34c4, strtab=strtab at entry=0x77ef3c84 
> "", undef_name=undef_name at entry=0x7762b9ac "_ITM_registerTMCloneTable",
>      type_class=type_class at entry=1) at ldso/ldso/dl-hash.c:161
> 161        if ((sym->st_value == 0 && (ELF_ST_TYPE(sym->st_info) != 
> STT_TLS))
> (gdb) bt
> #0  check_match (sym=sym at entry=0x77ef34c4, 
> strtab=strtab at entry=0x77ef3c84 "",
>      undef_name=undef_name at entry=0x7762b9ac "_ITM_registerTMCloneTable", 
> type_class=type_class at entry=1) at ldso/ldso/dl-hash.c:161
> #1  0x77fe1b5c in _dl_lookup_sysv_hash (type_class=1, 
> undef_name=0x7762b9ac "_ITM_registerTMCloneTable", hash=192047269, 
> symtab=0x77ef1494,
>      tpnt=0x77ff52c0) at ldso/ldso/dl-hash.c:261
> #2  _dl_find_hash (name=0x7762b9ac "_ITM_registerTMCloneTable", 
> scope=, mytpnt=0x456a90, type_class=1, sym_ref=0x0)
>      at ldso/ldso/dl-hash.c:339
> #3  0x77fe1dc8 in _dl_perform_mips_global_got_relocations 
> (tpnt=0x456a90, lazy=0) at ldso/ldso/mips/elfinterp.c:390
> #4  0x77cec848 in do_dlopen (libname=0x45e0c0 
> "/usr/lib/pulse-6.0/modules/module-null-sink.so", flag=2) at 
> ldso/libdl/libdl.c:557
> #5  0x77cecb0c in dlopen (libname=0x45e0c0 
> "/usr/lib/pulse-6.0/modules/module-null-sink.so", flag=2) at 
> ldso/libdl/libdl.c:664
> #6  0x0040a078 in bind_now_open (d=, fname=0x45e0c0 
> "/usr/lib/pulse-6.0/modules/module-null-sink.so", advise=)
>      at daemon/ltdl-bind-now.c:74
> #7  0x77da26f0 in tryall_dlopen ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #8  0x77da3098 in find_handle_callback ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #9  0x77da2dd8 in foreach_dirinpath ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #10 0x77da2ef4 in find_handle ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #11 0x77da4c60 in try_dlopen ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #12 0x77da5028 in lt_dlopenadvise ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #13 0x77da51a0 in lt_dlopenext ()
>     from 
> /home/mimmo/projects/linino_CC/scripts/../staging_dir/target-mips_34kc_uClibc-0.9.33.2/root-ar71xx/usr/lib/libltdl.so.7
> #14 0x77f6c15c in pa_module_load (c=0x423868, name=0x7763f89c 
> "module-null-sink",
>      argument=0x430758 "sink_name=auto_null 
> sink_properties='device.description=\"Dummy Output\"'") at 
> pulsecore/module.c:122
> #15 0x7763f018 in load_null_sink_if_needed (c=0x423868, sink=
> out>, u=0x454418) at modules/module-always-sink.c:81
> #16 0x7763f21c in unlink_hook_callback (c=, 
> sink=, userdata=0x454418) at modules/module-always-sink.c:140
> #17 0x77f69b74 in pa_hook_fire (hook=0x423a0c, data=0x474748) at 
> pulsecore/hook-list.c:104
> #18 0x77f8bd00 in pa_sink_unlink (s=0x474748) at pulsecore/sink.c:686
> #19 0x773ecb2c in stop_thread (u=0x471b48) at 
> modules/bluetooth/module-bluez5-device.c:1561
> #20 0x773ef5e0 in set_profile_cb (c=, 
> new_profile=0x4730d8) at modules/bluetooth/module-bluez5-device.c:1863
> #21 0x77f65678 in pa_card_set_profile (c=, 
> profile=0x4730d8, save=true) at pulsecore/card.c:279
> #22 0x7771dc1c in command_set_card_profile (pd=, 
> command=, tag=2, t=, userdata=0x46c368)
>      at pulsecore/protocol-native.c:4782
> #23 0x77e9fc50 in pa_pdispatch_run (pd=0x485850, packet=0x463f58, 
> ancil_data=0x478dd8, userdata=0x46c368) at pulsecore/pdispatch.c:341
> #24 0x77726fd4 in pstream_packet_callback (p=0x478bf0, packet=0x463f58, 
> ancil_data=0x478dd8, userdata=)
>      at pulsecore/protocol-native.c:4896
> #25 0x77ea3258 in do_read (p=0x478bf0, re=0x478d30) at 
> pulsecore/pstream.c:880
> #26 0x77ea5b48 in do_pstream_read_write (p=0x478bf0) at 
> pulsecore/pstream.c:193
> #27 0x77f14628 in dispatch_pollfds (m=0x421708) at pulse/mainloop.c:655
> #28 pa_mainloop_dispatch (m=0x421708) at pulse/mainloop.c:898
> ---Type  to continue, or q  to quit---
> #29 0x77f147e0 in pa_mainloop_iterate (m=0x421708, block=
> out>, retval=0x7fff6be8) at pulse/mainloop.c:929
> #30 0x77f14864 in pa_mainloop_run (m=0x421708, retval=0x7fff6be8) at 
> pulse/mainloop.c:944
> #31 0x004056e8 in main (argc=, argv=) at 
> daemon/main.c:1134
> (gdb)
> 
> 
> Any suggestion on why this happen?

Not really. The backtrace shows loading of module-null-sink, which
makes sense, since if you don't have any other devices in the system,
PulseAudio will load module-null-sink when the hsp sink gets removed to
make sure that there's at least one output device available. That
doesn't explain why PulseAudio goes into a loop, but perhaps this would
be possible to reproduce on other systems by unloading all module-alsa
-card instances first. Unfortunately, I seem to be hit by another
bluetooth bug that has been reported recently: the a2dp profile of the
headset doesn't get connected, so PulseAudio doesn't even try to switch
to it.

Could you get a verbose log from the daemon? If you need help with
that, this page has instructions:
https://wiki.ubuntu.com/PulseAudio/Log

-- 
Tanu


More information about the pulseaudio-discuss mailing list