[linux-audio-user] 2.6.1, capabilities, jackstart, and Hydrogen

Benjamin Flaming lau at solobanjo.com
Sun Jan 18 01:43:55 EST 2004

     I'm in the process of trying to rebuild my audio box, after thoroughly 
mangling my previous setup.  I started with a fresh install of Slackware 9.1.  
I then built the following software:

Vanilla 2.6.1 kernel (with 2-line capabilities patch)
ALSA-lib 1.0.0rc1
Jack 0.94.0 (configured with --enable-capabilities)
libcap 1.10
Hydrogen 0.8.1

     When I tried to start Hydrogen, however, the application locked up when 
it connected to Jack.  Any other program interacting with Hydrogen (e.g. 
"killall -9 hydrogen", "ps -A", "top") also locked up.  Jack continued 
running smoothly, as did the rest of the environment.

     This problem does not happen when I run as root, nor does it happen when 
I run Jack without realtime scheduling.  It happens only when I use jackstart 
as a normal user.

     I would like to test some of my other favorite Jack applications, but 
sourceforge.net's CVS servers seem to be down right now, and some of the 
library dependencies don't seem available by any other means.  The only other 
Jack client I'm aware of on my machine is jackrec.  I successfully used 
jackrec to capture 5 seconds of audio, with no lockup.

     Originally, the output of dmesg contained "Debug: sleeping function 
called from invalid context at include/asm/semaphore.h:119" statements each 
time there was a lockup.  A visit with Google turned up this message:


     The call trace from my dmesg output was essentially identical, and so I 
applied the patch contained in the message.  This silenced the complaints, 
but the lockups persisted.

     I was able to get a fresh CVS copy of Hydrogen (right before CVS went 
down), but the result is the same as with 0.8.1.  I was unable to build 
0.8.0, due to backward-compatibility problems with Jack.

     Originally, I had Jack configured with --enable-optimize and 
--enable-posix-shm, but I have since rebuilt (make uninstall, make clean, 
./configure, make, make install) with only --enable-capabilities.  No effect.

     If I use strace to launch Hydrogen, I get output which consistently 
terminates with the following lines:

sched_get_priority_max(0x1)             = 99
sched_get_priority_min(0x1)             = 1

     If I use strace to launch jackrec, the output continues past the mlockall 

sched_get_priority_max(0x1)             = 99
sched_get_priority_min(0x1)             = 1
mlockall(MCL_CURRENT|MCL_FUTURE)        = 0
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
write(7, "\240\360\n@\0\0\0\0 M\5\10\31o\7 at P\260\4\10\0\0\0\200\0"..., 148) = 
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0

(Plus another screen or so of additional output.)

     If there's any other info I should provide, please let me know.  I'm out 
of my league here.  I don't know whether the issue is the kernel, ALSA, Jack, 
libcap, or Hydrogen.  Can anyone point me in the right direction?


More information about the Linux-audio-user mailing list