Package: jackd1 Version: 1:0.121.0+svn4469-2 Severity: important Tags: upstream patch
Hello! When I try to start jackd1 with the oss driver, I receive the following output: --- $ /usr/bin/jackd -r -doss -r176400 -p1024 -n2 -w16 -i0 jackd 0.121.0 Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others. jackd comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details JACK compiled with System V SHM support. loading driver .. Segmentation fault (core dumped) --- gdb backtrace of the core dump: --- #0 set_period_size (client=0x60b630, params=<value optimized out>) at oss_driver.c:184 #1 driver_initialize (client=0x60b630, params=<value optimized out>) at oss_driver.c:1244 #2 0x0000000800830812 in jack_engine_load_driver (engine=0x6087b0, driver_desc=0x60f460, driver_params=0x60d300) at engine.c:1112 #3 0x0000000000402b73 in jack_main (argc=<value optimized out>, argv=<value optimized out>) at jackd.c:165 #4 main (argc=<value optimized out>, argv=<value optimized out>) at jackd.c:799 --- It looks like the import of upstream version 0.121.0+svn4469 on Jun 23 broke this driver, by trying to use driver->engine->get_microseconds() before driver->engine had been assigned any value. Before this import, this line called jack_get_microseconds() directly. Since driver->engine->get_microseconds() ends up calling the same logic as jack_get_microseconds(), I have attached a simple patch to revert to the old behaviour if driver->engine is not defined. I have tested jackd1 with this fix applied, and it runs without any problems. This bug appears to still be present in the latest upstream svn, so it may be worthwhile submitting this fix upstream. Please contact me if you need any more information, I'd be happy to revise the logic of the fix I've made if you think it can be improved. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (800, 'unstable'), (700, 'experimental') Architecture: kfreebsd-amd64 (x86_64) Kernel: kFreeBSD 8.2-1-amd64 Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8) 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.41 Debian configuration management sy ii libc0.1 2.13-13 Embedded GNU C Library: Shared lib ii libcelt0-0 0.7.1-1 The CELT codec runtime library ii libjack0 1:0.121.0+svn4469-2 JACK Audio Connection Kit (librari ii libreadline6 6.2-2 GNU readline and history libraries ii libsamplerate0 0.1.7-3 Audio sample rate conversion libra ii libsndfile1 1.0.25-2 Library for reading/writing audio Versions of packages jackd1 recommends: ii libpam-modules 1.1.3-2 Pluggable Authentication Modules f ii qjackctl 0.3.8-1 User interface for controlling the Versions of packages jackd1 suggests: pn jack-tools <none> (no description available) pn meterbridge <none> (no description available) -- Configuration Files: /etc/security/limits.d/audio.conf changed [not included] -- debconf-show failed
diff --git a/debian/patches/fix-oss-segfault.patch b/debian/patches/fix-oss-segfault.patch new file mode 100644 index 0000000..647c903 --- /dev/null +++ b/debian/patches/fix-oss-segfault.patch @@ -0,0 +1,15 @@ +Previous upstream import breaks oss driver by trying to use driver->engine before it is defined. This patch reverts the behaviour to the old way if driver->engine is not defined. +--- a/drivers/oss/oss_driver.c ++++ b/drivers/oss/oss_driver.c +@@ -181,7 +181,10 @@ + ((double) driver->period_size / + (double) driver->sample_rate) * 1e6; + driver->last_wait_ust = 0; +- driver->last_periodtime = driver->engine->get_microseconds(); ++ if (driver->engine) ++ driver->last_periodtime = driver->engine->get_microseconds(); ++ else ++ driver->last_periodtime = jack_get_microseconds(); + driver->next_periodtime = 0; + driver->iodelay = 0.0F; + } diff --git a/debian/patches/series b/debian/patches/series index 5c54605..2916f73 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ 2001_debian_lib64.patch sh4.patch +fix-oss-segfault.patch