[pulseaudio-tickets] [PulseAudio] #218: PulseAudio crashes very quickly when resample-method is src-sink-* or speex-*-10

PulseAudio trac-noreply at tango.0pointer.de
Fri Mar 28 01:59:37 PDT 2008


#218: PulseAudio crashes very quickly when resample-method is src-sink-* or
speex-*-10
--------------------------------+-------------------------------------------
  Reporter:  erik at slagter.name  |       Owner:  lennart           
      Type:  defect             |      Status:  reopened          
  Priority:  highest            |   Milestone:                    
 Component:  daemon             |    Severity:  critical          
Resolution:                     |    Keywords:  resampler segfault
--------------------------------+-------------------------------------------
Comment (by erik at slagter.name):

 Somehow I didn't receive the updates by email (although I did get this
 one...)

 AstralStorm:

 This is what I use: x86-64 with fedora 8, I have pulseaudio installed from
 fedora 9: pulseaudio-0.9.8-5.fc9.x86_64. Both the versions from 8 and 9
 exhibit the problem.

 I do not have a "broken" or "overoptimized" system. All is really
 standard/default fedora. Also I happen to be systems administrator in real
 life, so I tend to know when a system is broken.

 Lennart:

 Sure, sure, ehm, no, I did not write the code ;-) I only can say that the
 time that elapses before pulseaudio crashes depends on the resample
 configuration. The higher the resampling quality, the faster pulseaudio
 crashes.

 I'd really like to send you the backtrace (I guess you mean the output of
 gdb "where") but I have trouble getting gdb to work on pulseaudio, it has
 something to do with the pulseaudio debug package from fedora being
 uncooperative. I'll have another go soon.

 In the meantime, here are my configs:

 client.conf: almost empty

 default.pa:
 #!/usr/bin/pulseaudio -nF
 #
 # This file is part of PulseAudio.
 #
 # PulseAudio is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 #
 # PulseAudio is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 # General Public License for more details.
 #
 # You should have received a copy of the GNU Lesser General Public License
 # along with PulseAudio; if not, write to the Free Software Foundation,
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

 .nofail

 ### Load something into the sample cache
 #load-sample-lazy x11-bell /usr/share/sounds/gtk-events/activate.wav
 load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav
 #load-sample-lazy pulse-coldplug /usr/share/sounds/startup3.wav
 #load-sample-lazy pulse-access /usr/share/sounds/generic.wav

 .fail

 ### Load audio drivers statically (it's probably better to not load
 ### these drivers manually, but instead use module-hal-detect --
 ### see below -- for doing this automatically)

 #load-module module-alsa-sink
 #load-module module-oss device="/dev/dsp" sink_name=output
 source_name=input
 #load-module module-oss-mmap device="/dev/dsp" sink_name=output
 source_name=input
 #load-module module-null-sink
 #load-module module-pipe-sink

 ### Automatically load driver modules depending on the hardware available
 #.ifexists /usr/lib64/pulse-0.9/modules/module-hal-detect.so
 #load-module module-hal-detect
 #.else
 ### Alternatively use the static hardware detection module (for systems
 that
 ### lack HAL support)
 #load-module module-detect
 #.endif

 ### Load several protocols
 #load-module module-esound-protocol-unix auth-anonymous=1
 load-module module-native-protocol-unix auth-anonymous=1

 ### Network access (may be configured with paprefs, so leave this
 commented
 ### here if you plan to use paprefs)
 #load-module module-esound-protocol-tcp auth-anonymous=1
 load-module module-native-protocol-tcp auth-anonymous=1
 #load-module module-zeroconf-publish

 ### Load the RTP reciever module (also configured via paprefs, see above)
 #load-module module-rtp-recv

 ### Load the RTP sender module (also configured via paprefs, see above)
 #load-module module-null-sink sink_name=rtp format=s16be channels=2
 rate=44100 description="RTP Multicast Sink"
 #load-module module-rtp-send source=rtp.monitor

 ### Automatically restore the volume of playback streams
 #load-module module-volume-restore

 ### Automatically restore the default sink/source when changed by the user
 during runtime
 #load-module module-default-device-restore

 ### Automatically move streams to the default sink if the sink they are
 ### connected to dies, similar for sources
 load-module module-rescue-streams

 ### Automatically suspend sinks/sources that become idle for too long
 #load-module module-suspend-on-idle

 ### Load X11 bell module
 #load-module module-x11-bell sample=x11-bell

 ### Publish connection data in the X11 root window
 #.ifexists /usr/lib64/pulse-0.9/modules//module-x11-publish.so
 #load-module module-x11-publish
 #.endif

 ### Register ourselves in the X11 session manager
 # Deactivated by default, to avoid deadlock when PA is started as esd from
 gnome-session
 # Instead we load this via /etc/xdg/autostart/ and "pactl load-module" now
 # load-module module-x11-xsmp

 ### Load additional modules from GConf settings. This can be configured
 with the paprefs tool.
 ### Please keep in mind that the modules configured by paprefs might
 conflict with manually
 ### loaded modules.
 #.ifexists /usr/lib64/pulse-0.9/modules//module-gconf.so
 #load-module module-gconf
 #.endif

 ### Make some devices default
 set-default-sink default
 #set-default-source input

 #load-module module-http-protocol-tcp port=4747
 #load-module module-cli
 load-module module-cli-protocol-unix
 #load-module module-cli-protocol-tcp port=4749

 load-module module-null-sink sink_name=null
 #load-module module-alsa-sink device=hw:0,0 sink_name=alc
 load-module module-alsa-sink device=hw:6,0 sink_name=jvc
 load-module module-alsa-sink device=hw:7,0 sink_name=usb1
 load-module module-alsa-sink device=hw:8,0 sink_name=usb2

 load-module module-ladspa-sink sink_name=ladspa_low  master=usb2
 plugin=/usr/lib64/ladspa/butterworth_1902.so label=buttlow_iir
 control=2800,0.7071
 load-module module-ladspa-sink sink_name=ladspa_high master=usb1
 plugin=/usr/lib64/ladspa/butterworth_1902.so label=butthigh_iir
 control=3200,0.7071

 #load-module module-combine adjust_time=30 resample_method=speex-float-4
 sink_name=default master=jvc slaves=ladspa_low,ladspa_high
 load-module module-combine adjust_time=10 resample_method=trivial
 sink_name=default master=jvc

 =======================================================

 daemon.conf:

 # $Id: daemon.conf.in 2067 2007-11-21 01:30:40Z lennart $
 #
 # This file is part of PulseAudio.
 #
 # PulseAudio is free software; you can redistribute it and/or modify
 # it under the terms of the GNU Lesser General Public License as published
 by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 #
 # PulseAudio is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 # General Public License for more details.
 #
 # You should have received a copy of the GNU Lesser General Public License
 # along with PulseAudio; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 # USA.

 ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5)
 for
 ## more information. Default values a commented out.  Use either ; or #
 for
 ## commenting.

 daemonize = yes
 ; fail = yes
 ; disallow-module-loading = no
 ; use-pid-file = yes
 system-instance = yes
 ; disable-shm = no

 verbose = 1

 ; high-priority = yes
 ; nice-level = -11

 ; realtime-scheduling = no
 ; realtime-priority = 5

 exit-idle-time = -1
 module-idle-time = -1
 ; scache-idle-time = 20

 dl-search-path = /usr/lib64/pulse-0.9/modules/

 ; default-script-file =

 ; log-target = auto
 ; log-level = notice

 #resample-method =src-sinc-best-quality
 resample-method = speex-float-8
 disable-remixing = yes

 ; no-cpu-limit = no

 ; rlimit-as = -1
 ; rlimit-core = -1
 ; rlimit-data = -1
 ; rlimit-fsize = -1
 ; rlimit-nofile = 256
 ; rlimit-stack = -1
 ; rlimit-nproc = -1
 ; rlimit-memlock = -1
 ; rlimit-nice = 31
 ; rlimit-rtprio = 9

 default-sample-format = s16le
 default-sample-rate = 48000
 default-sample-channels = 2

 ; default-fragments = 4
 ; default-fragment-size-msec = 25

-- 
Ticket URL: <http://pulseaudio.org/ticket/218#comment:5>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server


More information about the pulseaudio-bugs mailing list