Bug#740038: pulseaudio hangs in D (uninterruptible sleep)

Antoine Beaupré anarcat at debian.org
Tue Feb 25 02:57:40 UTC 2014


Package: pulseaudio
Version: 4.0-6+b1
Severity: important

It is somewhat unclear to me how this happened, but a pulseaudio
daemon has hanged on my machine:

  PID  STARTED S TTY          TIME COMMAND
10093   Feb 21 D ?        01:15:42 /usr/bin/pulseaudio --start --log-target=syslog

I have tried to kill the process (even with -KILL), and it just stays
there. It has been like this for a while now.

I have a rather convoluted setup, with liquidsoap driving pulseaudio,
however liquidsoap is stopped now yet PA is still running. Some
details on the setup can be perused here:

http://anarc.at/services/radio/

I have tried to attach an strace or a gdb to the process, but both
simply hang when attaching.

Here are some relevant logs:

/var/log/syslog.2.gz:Feb 22 11:06:13 marcos pulseaudio[10093]: [alsa-sink-ALC887 Analog] alsa-sink.c: Error opening PCM device front:0: Périphérique ou ressource occupé
/var/log/syslog.2.gz:Feb 22 11:06:14 marcos pulseaudio[10093]: [alsa-sink-ALC887 Analog] alsa-sink.c: Error opening PCM device front:0: Périphérique ou ressource occupé
/var/log/syslog.2.gz:Feb 22 11:06:23 marcos pulseaudio[10093]: [alsa-sink-ALC887 Analog] alsa-sink.c: Error opening PCM device front:0: Périphérique ou ressource occupé
/var/log/syslog.3.gz:Feb 21 17:50:06 marcos pulseaudio[10093]: [pulseaudio] pid.c: Stale PID file, overwriting.
/var/log/syslog.3.gz:Feb 21 19:16:24 marcos pulseaudio[10093]: [alsa-sink-ALC887 Analog] alsa-sink.c: Error opening PCM device front:0: Périphérique ou ressource occupé
/var/log/syslog.3.gz:Feb 21 19:16:27 marcos pulseaudio[10093]: [alsa-sink-ALC887 Analog] alsa-sink.c: Error opening PCM device front:0: Périphérique ou ressource occupé
/var/log/syslog.1:Feb 23 21:11:21 marcos pulseaudio[10093]: [pulseaudio] module-combine-sink.c: Assertion 'pa_idxset_remove_by_data(o->userdata->outputs, o, NULL)' failed at modules/module-combine-sink.c:927, function output_free(). Aborting.
/var/log/syslog.1:Feb 23 21:11:21 marcos kernel: [796082.449407] CPU: 1 PID: 10093 Comm: pulseaudio Not tainted 3.12-1-amd64 #1 Debian 3.12.9-1

Here is a translation of the french sentence: "Périphérique ou
ressource occupé" means "Resource or device busy" or something to that
effect.

Note that liquidsoap crashed on feb 21st:

2014/02/21 17:44:46 [threads:2] Queue generic queue #2 crashed with exception File "request.ml", line 512, characters 2-8: Assertion failed
2014/02/21 17:44:46 [threads:2] Called from file "duppy.ml", line 280, characters 9-26

2014/02/21 17:44:46 [threads:1] PANIC: Liquidsoap has crashed, exiting..
2014/02/21 17:44:46 [threads:1] Please report at: savonet-users at lists.sf.net
2014/02/21 17:44:47 >>> LOG START
2014/02/21 17:44:46 [protocols.external:3] Found "/usr/bin/wget".
2014/02/21 17:44:46 [main:3] Liquidsoap 1.1.1

Then it was restarted and it's when that dreaded pulseaudio process
got spawned:

2014/02/21 17:51:44 [threads:3] Created thread "wallclock_pulse" (1 total).
2014/02/21 17:51:44 [clock.wallclock_pulse:3] Streaming loop starts, synchronized by active sources.

I am not sure, however, it was actually writing to that pulseaudio
process at that point. I tried to restart liquidsoap yesterday, but it
failed:

2014/02/23 21:17:01 [clock.wallclock_pulse:2] Error when starting output pulse_out(liquidsoap:): Pulseaudio error: Timeout!
2014/02/23 21:17:01 [threads:3] Created thread "wallclock_pulse" (1 total).
2014/02/23 21:17:01 [clock.wallclock_pulse:3] Streaming loop starts, synchronized by active sources.
2014/02/23 21:17:01 [server:3] Unlink anaradio.socket
2014/02/23 21:17:01 [main:3] Shutdown started!

Notice how it times out talking to pulseaudio.

Other commandline tools also fail to talk to PA:

liquidsoap at marcos:~$ LANG=C pacmd list
Daemon not responding.
liquidsoap at marcos:~$ LANG=C pactl list
Connection failure: Timeout

I understand liquidsoap's pulseaudio implementation may be limited or
wrong, but from my perspective, it shouldn't be crashing the daemon
the way it is doing right now.

I would welcome hints on how to debug this problem, right now I feel
that only a reboot will allow me to kill that process, something which
is a little odd in itself.

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.12-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages pulseaudio depends on:
ii  adduser                       3.113+nmu3
ii  consolekit                    0.4.6-3+b1
ii  libasound2                    1.0.27.2-3
ii  libasound2-plugins            1.0.27-2+b1
ii  libc6                         2.17-97
ii  libcap2                       1:2.22-1.2
ii  libdbus-1-3                   1.8.0-1
ii  libfftw3-single3              3.3.3-7
ii  libgcc1                       1:4.8.2-15
ii  libice6                       2:1.0.8-2
ii  libltdl7                      2.4.2-1.7
ii  liborc-0.4-0                  1:0.4.18-1
ii  libpulse0                     4.0-6+b1
ii  libsamplerate0                0.1.8-7
ii  libsm6                        2:1.2.1-2
ii  libsndfile1                   1.0.25-9
ii  libspeexdsp1                  1.2~rc1.1-1
ii  libstdc++6                    4.8.2-15
ii  libsystemd-login0             204-7
ii  libtdb1                       1.2.12-1
ii  libudev1                      204-7
ii  libwebrtc-audio-processing-0  0.1-2
ii  libx11-6                      2:1.6.2-1
ii  libx11-xcb1                   2:1.6.2-1
ii  libxcb1                       1.10-2
ii  libxtst6                      2:1.2.2-1
ii  lsb-base                      4.1+Debian12
ii  udev                          204-7

Versions of packages pulseaudio recommends:
ii  gstreamer0.10-pulseaudio  0.10.31-3+nmu2
ii  pulseaudio-module-x11     4.0-6+b1
ii  rtkit                     0.10-3

Versions of packages pulseaudio suggests:
ii  paman             0.9.4-1
ii  paprefs           0.9.10-1
ii  pavucontrol       1.0-1
ii  pavumeter         0.9.3-4
ii  pulseaudio-utils  4.0-6+b1

-- no debconf information



More information about the pkg-pulseaudio-devel mailing list