Bug#590021: jackd1: watchdog problems

Frank Heckenbach f.heckenbach at fh-soft.de
Thu Jul 22 23:57:18 UTC 2010


Package: jackd1
Version: 1:0.118+svn3796-7
Severity: normal
Tags: upstream
Tags: patch

*** Please type your report below this line ***

This is an update of Debian bug #464886 (which was for etch),
updated for squeeze.

There seems to be a problem with JACK's watchdog. The watchdog is
triggered by jack_engine_process(), and the watchdog thread kills
JACK when it isn't triggered within 5 seconds on the assumption that
JACK hangs.

However, jack_engine_process() not being called doesn't necessarily
mean that JACK hangs. One alternative reason, freewheeling, is dealt
with in jack_watchdog_thread(), though not quite correctly AFAICS.
If freewheeling stops just before the nanosleep() ends, there is no
time left to trigger the watchdog, so JACK will be killed wrongly.

Another reason is that jack_engine_process() doesn't run while other
clients have the graph lock. Sure, one invocation of, say,
jack_connect() shouldn't hold the lock for long, but many
invocations combined might, under bad circumstances, make the
watchdog time out.

How to reproduce:

Reproducing is a bit hard, since it fails only intermittently. See
the test program from #464886 (with the obvious s/alsa_pcm/system/).

Fix:

The attached patch (updated to the current version in squeeze
testing) triggers the watchdog when acquiring the graph lock, and
before(!) exiting freewheeling. So, assuming that nothing keeps the
lock for too long, the watchdog should be happy.

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.34 (SMP w/1 CPU core)
Locale: LANG=de_DE, LC_CTYPE=de_DE (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash

Versions of packages jackd1 depends on:
ii  coreutils              8.5-1             GNU core utilities
ii  debconf [debconf-2.0]  1.5.32            Debian configuration management sy
ii  libasound2             1.0.23-1          shared library for ALSA applicatio
ii  libc6                  2.11.2-2          Embedded GNU C Library: Shared lib
ii  libcelt0-0             0.7.1-1           The CELT codec runtime library
ii  libjack0               1:0.118+svn3796-7 JACK Audio Connection Kit (librari
ii  libreadline6           6.1-3             GNU readline and history libraries
ii  libsamplerate0         0.1.7-3           Audio sample rate conversion libra
ii  libsndfile1            1.0.21-2          Library for reading/writing audio 

Versions of packages jackd1 recommends:
ii  jackd1-firewire        1:0.118+svn3796-7 JACK Audio Connection Kit (FFADO b
ii  libpam-modules         1.1.1-3           Pluggable Authentication Modules f
ii  qjackctl               0.3.6-1+b1        User interface for controlling the

Versions of packages jackd1 suggests:
ii  jack-tools                    0.0.2-7+b1 various JACK tools: plumbing, play
pn  libjackasyn0                  <none>     (no description available)
pn  meterbridge                   <none>     (no description available)

-- debconf information:
* jackd/tweak_rt_limits: true
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jack-watchdog.patch
Type: application/octet-stream
Size: 1496 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20100723/7d6f7a8e/attachment.obj>


More information about the pkg-multimedia-maintainers mailing list