Thursday, July 10, 2008

PulseAudio Again...

Just had another exciting PulseAudio crash where my sound card got continually spammed until my ears bled and then it spammed the sound card some more.

Seriously though, my coworkers were a bit annoyed by my laptop blaring really loud and obnoxious noise for the past hour (made worse because my keyboard volume control keys do not actually work with pulseaudio which is apparently a known issue with Lenovo T61 laptops I'm told).

However, this did provide me with a most excellent opportunity to test the patches I posted in my previous blog entry about my pain and suffering at the hands of PulseAudio.

Yet again, I was unable to launch any new apps - though instead of blocking in esd_open_sound(), they blocked in esd_send_auth(), so I went and patched that up to use non-blocking IO, build new packages, installed them, and tested and HALLELUJAH! they work!

Yes, ladies and gentlemen, I can now actually use my system even when PulseAudio takes a proverbial dump on my desktop.

I've submitted my patches upstream:

  • bug #542391: libesd should not block if the daemon dies/hangs/whatever
  • bug #542296: gnome_sound needs to handle pa hangs more gracefully

Unfortunately, these patches do not solve the root problem (pulseaudio suckage), but at least they allow me to get work done when pulseaudio craps out on me (which only happens every few hours if I'm lucky).

Oh, and if you are on 32bit x86 openSUSE 11 systems, you can grab some packages I made up at I've also uploaded the raw patches in case anyone wants to push them in their own distro packages.


Anonymous said...

heh, you're fast turning into a 1337 PulseAudio Developer :P

Anonymous said...

Man, I just can't get it. Can't you just totally disable Pulseaudio in your distro in wait until it matures enough to enable it?

Jeffrey Stedfast said...

I did that for a while, but a lot of gnome apps rely on connecting to/sending audio data to the esound daemon, which, when I uninstalled pulseaudio, left me with no esound daemon for these apps to connect to.

I have since made packages for the esound daemon program, but I'm trying to work with the developers to get these bugs fixed (so far it's me doing all the work).

Anonymous said...

I'm glad you're filing bugs and producing patches, but I must say - it seems there's something really wonky going on with your setup or hardware.

I've used it on quite a variety of hardware, some pretty old/exotic/new - and never had any problems with it. (I've mostly been using Debian-based distros, maybe it's a Suse distro issue)

Sorry, I know that doesn't help _you_ very much.

Anonymous said...

Which gnome program cannot run without esd ? I use gnome and I completely removed pulseaudio - and everything works like charm.

I'm using ubuntu 8.04

Jeffrey Stedfast said...

It's not that they don't run without esd, they just don't play any audio.

Matthew said...

I wonder what's different in the Ubuntu versus OpenSUSE setups wrt PulseAudio.

The only PA issue I have is some programs seem to make others unable to play (Flash, Virtualbox).

I also have a Lenovo T61 and my volume buttons worked with no configuration needed.

Anonymous said...

Geez, what's up with openSUSE? I'm running Ubuntu and Fedora on a T61p without any trouble.

Code Snippet Licensing

All code posted to this blog is licensed under the MIT/X11 license unless otherwise stated in the post itself.