GNOME Bugzilla – Bug 772980
gnome-shell hangs if pulseaudio is not responsive
Last modified: 2016-11-21 10:45:11 UTC
Created attachment 337758 [details] backtrace during the hang How to reproduce: Run pulseaudio in gdb and stop pulseaudio execution so that the pulseaudio process stays alive, but doesn't respond to any client requests. All client operations get a timeout after 30 seconds in this state. Open gnome-terminal and press tab. Normally that should cause a short blip sound, but since pulseaudio is stopped, no sound is expected in this case. The problem is that gnome-shell hangs for 30 seconds. The backtrace (attached) shows that libmutter is playing the blip sound in a synchronous manner. That's bad, I think the blip should be played asynchronously. Since libmutter seems to be the culprit here, maybe gnome-shell isn't the right component for this bug report, but since I experience the issue in gnome-shell, it's perhaps good to make the gnome-shell developers aware of the issue by opening the bug against gnome-shell first. I'm using Debian testing. Package versions: gnome-shell 3.22.0-1+b1 libmutter0i 3.22.0-1
Mutter uses libcanberra, AFAICS the function used to play the sound should be asynchronous, thus the problem is either in libcanberra or the pulseaudio library, and not mutter.
Oh, you're right. I assumed that the word "full" in "ca_context_play_full" meant that the function plays the sample in full before returning, but that's not the case. ca_context_play_full() is supposed to be asynchronous, but somehow it gets stuck. Looks like a libcanberra bug, then. Reported here: https://bugs.freedesktop.org/show_bug.cgi?id=98806