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
jack-watchdog.patch
Description: Binary data