Bug#856487: pulseaudio: SIGSEGV upon streaming to bluetooth headset

Linus Lüssing linus.luessing at c0d3.blue
Thu Mar 2 01:58:10 UTC 2017


On Wed, Mar 01, 2017 at 07:34:11PM -0300, Felipe Sateler wrote:
> You need to activate the debug archives:
> 
> https://wiki.debian.org/AutomaticDebugPackages

Aiy, thanks! The following crash was with pulseaudio-dbgsym and
libpulse0-dbgsym installed and the gdb backtrace was created for
all threads ("(gdb) thread apply all bt" - unfortunately still looks
like there is some stack corruption :( ) :

#####
odroid at otheros:/$ sudo coredumpctl gdb
           PID: 11356 (pulseaudio)
           UID: 1001 (odroid)
           GID: 1001 (odroid)
        Signal: 11 (SEGV)
     Timestamp: Thu 2017-03-02 02:24:15 CET (8min ago)
  Command Line: pulseaudio -vvvv
    Executable: /usr/bin/pulseaudio
 Control Group: /system.slice/tigervncserver.service
          Unit: tigervncserver.service
         Slice: system.slice
       Boot ID: d834b6de713f4e04816eb5b83e7100a3
    Machine ID: 5716166b59b3477b83939474094b846e
      Hostname: otheros
       Storage: /var/lib/systemd/coredump/core.pulseaudio.1001.d834b6de713f4e04816eb5b83e7100a3.11356.1488417855000000000000.lz4
       Message: Process 11356 (pulseaudio) of user 1001 dumped core.
                
                Stack trace of thread 11376:
                #0  0x00000000b0c6f962 n/a (libsbc.so.1)


GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/pulseaudio...Reading symbols from /usr/lib/debug/.build-id/1b/d03b66bbc1da7b639af9914dd3db452a0905f2.debug...done.
done.
[New LWP 11376]
[New LWP 11356]
[New LWP 11360]
[New LWP 11362]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Core was generated by `pulseaudio -vvvv'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0xb0c6f962 in ?? () from /usr/lib/arm-linux-gnueabihf/libsbc.so.1
[Current thread is 1 (Thread 0xb0c64300 (LWP 11376))]
(gdb) 
(gdb) thread apply all bt

Thread 4 (Thread 0xb16ff300 (LWP 11362)):
#0  __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
#1  0xb6bdc506 in __GI_ppoll (fds=0x7f619fb0, nfds=2, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
#2  0xb6e3f846 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/arm-linux-gnueabihf/bits/poll2.h:77
#3  pa_rtpoll_run (p=0x7f5fcad0) at pulsecore/rtpoll.c:314
#4  0xb20672fe in thread_func (userdata=0x7f5f6af8) at modules/alsa/alsa-source.c:1516
#5  0xb6df0970 in internal_thread_func (userdata=0x7f5fbd68) at pulsecore/thread-posix.c:81
#6  0xb6ce25e4 in start_thread (arg=0x0) at pthread_create.c:335
#7  0xb6be2472 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:86 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0xb2043300 (LWP 11360)):
#0  __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
#1  0xb6bdc506 in __GI_ppoll (fds=0x7f6bf290, nfds=3, timeout=<optimized out>, timeout at entry=0x0, sigmask=sigmask at entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
#2  0xb6e3f846 in ppoll (__ss=0x0, __timeout=0x0, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/arm-linux-gnueabihf/bits/poll2.h:77
#3  pa_rtpoll_run (p=0x7f5e85e8) at pulsecore/rtpoll.c:314
#4  0xb20623c8 in thread_func (userdata=0x7f684ca0) at modules/alsa/alsa-sink.c:1799
#5  0xb6df0970 in internal_thread_func (userdata=0x7f610cf0) at pulsecore/thread-posix.c:81
#6  0xb6ce25e4 in start_thread (arg=0x0) at pthread_create.c:335
#7  0xb6be2472 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:86 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 2 (Thread 0xb6f31000 (LWP 11356)):
#0  __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
#1  0xb6bdc506 in __GI_ppoll (fds=fds at entry=0x7f62f0c0, nfds=nfds at entry=25, timeout=<optimized out>, sigmask=sigmask at entry=0x0)
    at ../sysdeps/unix/sysv/linux/ppoll.c:39
#2  0xb6d87940 in ppoll (__ss=0x0, __timeout=<optimized out>, __nfds=25, __fds=0x7f62f0c0) at /usr/include/arm-linux-gnueabihf/bits/poll2.h:77
#3  pa_mainloop_poll (m=m at entry=0x7f58ce58) at pulse/mainloop.c:852
#4  0xb6d87dd8 in pa_mainloop_iterate (m=0x7f58ce58, block=<optimized out>, retval=0xbea1bf44) at pulse/mainloop.c:926
#5  0xb6d87e5c in pa_mainloop_run (m=0x7f58ce58, retval=0xbea1bf44) at pulse/mainloop.c:944
#6  0x7f56f40c in main (argc=<optimized out>, argv=<optimized out>) at daemon/main.c:1140

Thread 1 (Thread 0xb0c64300 (LWP 11376)):
#0  0xb0c6f962 in ?? () from /usr/lib/arm-linux-gnueabihf/libsbc.so.1
#1  0x000c0018 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) 

#####


Cores can be found here again:
https://metameute.de/~tux/bugreport/pulseaudio/core.pulseaudio.1001.d834b6de713f4e04816eb5b83e7100a3.11356.1488417855000000000000.lz4
https://metameute.de/~tux/bugreport/pulseaudio/pulseaudio-2.core.xz

Also a full "pulseaudio -vvvv" log:
https://metameute.de/~tux/bugreport/pulseaudio/pulseaudio-2.log

So it stops and crashes at the following line:
1554: "D: [bluetooth] protocol-native.c: Requesting rewind due to end of underrun."

This is the first line right after starting the stream:
1501: "I: [pulseaudio] client.c: Created 4 "Native client (UNIX socket client)""

And this is the first line before connecting the bluetooth headset:
1422: "D: [pulseaudio] module-udev-detect.c: Resuming all sinks and sources of card alsa_card.platform-sound."


Regards, Linus



More information about the pkg-pulseaudio-devel mailing list