I have a Marmitek BoomBoom 540 bluetooth headset.
I connected it with the hsp profile and setup the microphone to be the
preferred recording device in KDE sound settings. Then I switched the profile
to a2dp for high-quality audio. When the Bluetooth microphone is unavailable
KDE falls back to the integrated one in the laptop.
When I fire a recording application it's playing through the Bluetooth headset
while using the integrated laptop microphone. When I switch the profile from
a2dp to hsp the bluetooth microphone gets re-registered and KDE switches
automatically to the preferred device and that's where the assertion failed
message pops and pulseaudio stops. I can switch to hsp before running a
recording application and after launching it, it's using the headset
microphone without issues. I can switch from hsp to a2dp in that case and it
switches to the laptop mic as expected, but reverting from a2dp back to hsp
aborts the daemon again.
I'm attaching a backtrace as per instructions from
http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/
If there's something I'm missing please tell me so I can provide more
information.
Thank you for your time!
Kind regards,
Iskren.
On Friday 24 January 2014 23:13:48 Tanu Kaskinen wrote:
> On Fri, 2014-01-24 at 15:51 +0200, Iskren Hadzhinedev wrote:
> > Hello everyone!
> > I have an issue with Pulseaudio 4.0 and a bluetooth headset.
> > Whenever I change the profile from a2dp to hsp while a program is using
> > the
> > microphone, pulseaudio aborts with the following message:
> >
> > [pulseaudio] source.c: Assertion 'PA_SOURCE_IS_LINKED(s->state)' failed at
> > pulsecore/source.c:734, function pa_source_update_status(). Aborting.
> >
> > If microphone is not used profiles change without any issues.
> >
> > Tried with skype, viber and `parec | pacat' - same result in each case.
>
> Does just "parec --device=name_of_the_microphone_source > /dev/null" do
> the trick too?
>
> > Is there a way to fix this? Thanks in advance.
>
> If you could provide a backtrace with gdb, that would be useful.
>
> What microphone do you mean? You said that the bluetooth card profile is
> initially a2dp and then you switch to hsp. Since you can't use the
> headset microphone in the a2dp mode, you're apparently talking about
> some other microphone.
Starting program: /usr/bin/pulseaudio -vvvvv
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffedac2700 (LWP 23073)]
[New Thread 0x7fffed2c1700 (LWP 23074)]
[New Thread 0x7fffecac0700 (LWP 23075)]
[New Thread 0x7fffdd758700 (LWP 23234)]
[Thread 0x7fffdd758700 (LWP 23234) exited]
[New Thread 0x7fffdd758700 (LWP 23373)]
Program received signal SIGABRT, Aborted.
0x00007ffff3497dd9 in raise () from /lib64/libc.so.6
Thread 6 (Thread 0x7fffdd758700 (LWP 23373)):
#0 0x00007ffff3550b5f in ppoll () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff7b7b5e0 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=<optimized out>,
__fds=<optimized out>) at /usr/include/bits/poll2.h:77
No locals.
#2 pa_rtpoll_run (p=0x7c23b0, wait_op=wait_op@entry=true) at pulsecore/rtpoll.c:314
ts = {tv_sec = 0, tv_nsec = 2878000}
i = <optimized out>
r = 0
timeout = {tv_sec = 0, tv_usec = 2878}
__func__ = "pa_rtpoll_run"
__PRETTY_FUNCTION__ = "pa_rtpoll_run"
#3 0x00007fffdd9711ab in thread_func (userdata=0x6b3bf0) at modules/bluetooth/module-bluetooth-device.c:1152
pollfd = 0x7c27d0
ret = <optimized out>
disable_timer = <optimized out>
u = 0x6b3bf0
do_write = <optimized out>
pending_read_bytes = 0
writable = true
__func__ = "thread_func"
__PRETTY_FUNCTION__ = "thread_func"
#4 0x00007ffff715e3a8 in internal_thread_func (userdata=0x7a6a50) at pulsecore/thread-posix.c:83
t = 0x7a6a50
#5 0x00007ffff3f3fce2 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#6 0x00007ffff355aabd in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 4 (Thread 0x7fffecac0700 (LWP 23075)):
#0 0x00007ffff3550b5f in ppoll () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff7b7b5e0 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=<optimized out>,
__fds=<optimized out>) at /usr/include/bits/poll2.h:77
No locals.
#2 pa_rtpoll_run (p=0x6ce4e0, wait_op=wait_op@entry=true) at pulsecore/rtpoll.c:314
ts = {tv_sec = 1, tv_nsec = 979607000}
i = <optimized out>
r = 0
timeout = {tv_sec = 1, tv_usec = 979607}
__func__ = "pa_rtpoll_run"
__PRETTY_FUNCTION__ = "pa_rtpoll_run"
#3 0x00007fffedde5b8d in thread_func (userdata=0x6d9fa0) at modules/alsa/alsa-source.c:1527
ret = <optimized out>
rtpoll_sleep = 1979628
real_sleep = 57721669812
u = 0x6d9fa0
revents = 0
__func__ = "thread_func"
__PRETTY_FUNCTION__ = "thread_func"
#4 0x00007ffff715e3a8 in internal_thread_func (userdata=0x75ada0) at pulsecore/thread-posix.c:83
t = 0x75ada0
#5 0x00007ffff3f3fce2 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#6 0x00007ffff355aabd in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 3 (Thread 0x7fffed2c1700 (LWP 23074)):
#0 0x00007ffff3550b5f in ppoll () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff7b7b5e0 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=<optimized out>,
__fds=<optimized out>) at /usr/include/bits/poll2.h:77
No locals.
#2 pa_rtpoll_run (p=0x6b7ae0, wait_op=wait_op@entry=true) at pulsecore/rtpoll.c:314
ts = {tv_sec = 0, tv_nsec = 0}
i = <optimized out>
r = 0
timeout = {tv_sec = 0, tv_usec = 0}
__func__ = "pa_rtpoll_run"
__PRETTY_FUNCTION__ = "pa_rtpoll_run"
#3 0x00007fffedddf883 in thread_func (userdata=0x6b8040) at modules/alsa/alsa-sink.c:1816
ret = <optimized out>
rtpoll_sleep = 0
real_sleep = <optimized out>
u = 0x6b8040
revents = 0
__func__ = "thread_func"
__PRETTY_FUNCTION__ = "thread_func"
#4 0x00007ffff715e3a8 in internal_thread_func (userdata=0x6e20b0) at pulsecore/thread-posix.c:83
t = 0x6e20b0
#5 0x00007ffff3f3fce2 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#6 0x00007ffff355aabd in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 2 (Thread 0x7fffedac2700 (LWP 23073)):
#0 0x00007ffff3550b5f in ppoll () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff7b7b5e0 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=<optimized out>,
__fds=<optimized out>) at /usr/include/bits/poll2.h:77
No locals.
#2 pa_rtpoll_run (p=0x694dd0, wait_op=wait_op@entry=true) at pulsecore/rtpoll.c:314
ts = {tv_sec = 0, tv_nsec = 0}
i = <optimized out>
r = 0
timeout = {tv_sec = 0, tv_usec = 0}
__func__ = "pa_rtpoll_run"
__PRETTY_FUNCTION__ = "pa_rtpoll_run"
#3 0x00007fffedddf883 in thread_func (userdata=0x693e50) at modules/alsa/alsa-sink.c:1816
ret = <optimized out>
rtpoll_sleep = 0
real_sleep = <optimized out>
u = 0x693e50
revents = 0
__func__ = "thread_func"
__PRETTY_FUNCTION__ = "thread_func"
#4 0x00007ffff715e3a8 in internal_thread_func (userdata=0x6eb640) at pulsecore/thread-posix.c:83
t = 0x6eb640
#5 0x00007ffff3f3fce2 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#6 0x00007ffff355aabd in clone () from /lib64/libc.so.6
No symbol table info available.
Thread 1 (Thread 0x7ffff7fa3780 (LWP 23069)):
#0 0x00007ffff3497dd9 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007ffff34994e8 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007ffff7ba6402 in pa_source_update_status (s=s@entry=0x7b7ac0) at pulsecore/source.c:734
__func__ = "pa_source_update_status"
__PRETTY_FUNCTION__ = "pa_source_update_status"
#3 0x00007ffff7b9f8ec in pa_source_output_finish_move (o=o@entry=0x7dcc50, dest=dest@entry=0x7b7ac0,
save=save@entry=false) at pulsecore/source-output.c:1462
__func__ = "pa_source_output_finish_move"
__PRETTY_FUNCTION__ = "pa_source_output_finish_move"
#4 0x00007ffff7b9fce0 in pa_source_output_move_to (o=0x7dcc50, dest=0x7b7ac0, save=<optimized out>)
at pulsecore/source-output.c:1521
r = 0
__func__ = "pa_source_output_move_to"
__PRETTY_FUNCTION__ = "pa_source_output_move_to"
#5 0x00007fffddb7d70b in route_source_outputs (u=0x6b12a0, ignore_source=<optimized out>)
at modules/module-device-manager.c:748
so = <optimized out>
idx = 0
#6 0x00007ffff7b70f8c in pa_hook_fire (hook=0x6475e0, data=0x7c8b40) at pulsecore/hook-list.c:106
slot = 0x6afe70
next = <optimized out>
result = PA_HOOK_OK
__func__ = "pa_hook_fire"
__PRETTY_FUNCTION__ = "pa_hook_fire"
#7 0x00007ffff7ba352f in pa_source_put (s=<optimized out>) at pulsecore/source.c:604
__func__ = "pa_source_put"
__PRETTY_FUNCTION__ = "pa_source_put"
#8 0x00007ffff7b8ee3e in pa_sink_put (s=0x7bee00) at pulsecore/sink.c:659
__func__ = "pa_sink_put"
__PRETTY_FUNCTION__ = "pa_sink_put"
#9 0x00007fffdd973cfa in start_thread (u=u@entry=0x6b3bf0) at modules/bluetooth/module-bluetooth-device.c:1987
__func__ = "start_thread"
__PRETTY_FUNCTION__ = "start_thread"
#10 0x00007fffdd974075 in card_set_profile (c=<optimized out>, new_profile=0x7ab3a0)
at modules/bluetooth/module-bluetooth-device.c:2057
u = 0x6b3bf0
d = 0x7ab3d0
__func__ = "card_set_profile"
__PRETTY_FUNCTION__ = "card_set_profile"
#11 0x00007ffff7b6cc43 in pa_card_set_profile (c=0x7b8ed0, name=<optimized out>, save=save@entry=true)
at pulsecore/card.c:275
profile = 0x7ab3a0
r = <optimized out>
__func__ = "pa_card_set_profile"
__PRETTY_FUNCTION__ = "pa_card_set_profile"
#12 0x00007fffeee43578 in command_set_card_profile (pd=<optimized out>, command=<optimized out>, tag=2,
t=0x7e6040, userdata=0x7dba50) at pulsecore/protocol-native.c:4703
idx = 4294967295
name = 0x7e3ba8 "bluez_card.00_1D_43_00_06_15"
profile = 0x7e3bc6 "hsp"
card = <optimized out>
ret = <optimized out>
__func__ = "command_set_card_profile"
__PRETTY_FUNCTION__ = "command_set_card_profile"
#13 0x00007ffff714b28d in pa_pdispatch_run (pd=0x7e4bb0, packet=packet@entry=0x7e3b80,
creds=creds@entry=0x7e3a00, userdata=userdata@entry=0x7dba50) at pulsecore/pdispatch.c:336
cb = <optimized out>
tag = 2
command = 90
ts = 0x7e6040
ret = -1
__func__ = "pa_pdispatch_run"
__PRETTY_FUNCTION__ = "pa_pdispatch_run"
#14 0x00007fffeee4bd10 in pstream_packet_callback (p=0x7e37d0, packet=<optimized out>, creds=<optimized out>,
userdata=0x7dba50) at pulsecore/protocol-native.c:4817
__func__ = "pstream_packet_callback"
__PRETTY_FUNCTION__ = "pstream_packet_callback"
#15 0x00007ffff714f0ec in do_read (p=0x7e37d0) at pulsecore/pstream.c:827
release_memblock = 0x0
d = <optimized out>
l = <optimized out>
r = <optimized out>
#16 do_pstream_read_write (p=0x7e37d0) at pulsecore/pstream.c:185
__func__ = "do_pstream_read_write"
__PRETTY_FUNCTION__ = "do_pstream_read_write"
#17 0x00007ffff73a33bc in dispatch_pollfds (m=0x643190) at pulse/mainloop.c:657
e = 0x7df610
k = 1
r = 0
#18 pa_mainloop_dispatch (m=m@entry=0x643190) at pulse/mainloop.c:904
dispatched = 0
__func__ = "pa_mainloop_dispatch"
__PRETTY_FUNCTION__ = "pa_mainloop_dispatch"
#19 0x00007ffff73a37aa in pa_mainloop_iterate (m=m@entry=0x643190, block=block@entry=1,
retval=retval@entry=0x7fffffffdb08) at pulse/mainloop.c:935
r = <optimized out>
__func__ = "pa_mainloop_iterate"
__PRETTY_FUNCTION__ = "pa_mainloop_iterate"
#20 0x00007ffff73a3850 in pa_mainloop_run (m=m@entry=0x643190, retval=retval@entry=0x7fffffffdb08)
at pulse/mainloop.c:950
r = <optimized out>
#21 0x000000000040732b in main (argc=<optimized out>, argv=<optimized out>) at daemon/main.c:1137
c = 0x6472d0
buf = <optimized out>
conf = 0x63e3e0
mainloop = 0x643190
s = <optimized out>
configured_address = 0x6472d0 "\001"
r = <optimized out>
retval = 0
d = 2
valid_pid_file = true
ltdl_init = true
passed_fd = <optimized out>
e = <optimized out>
daemon_pipe = {-1, -1}
daemon_pipe2 = {-1, -1}
autospawn_fd = -1
autospawn_locked = false
server_lookup = 0x67b810
lookup_service_bus = 0x68dd60
server_bus = 0x68dd60
start_server = <optimized out>
__func__ = "main"
__PRETTY_FUNCTION__ = "main"
A debugging session is active.
Inferior 1 [process 23069] will be killed.
Quit anyway? (y or n) _______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss