On Mon, 2005-02-21 at 15:42 +0100, CC-Band wrote: > hi, > > i tried out the agnula demudi project. > > jack & hydrogen works fine but sometimes hydrogen crashes immediately. > what can i do to get information, why? I am having the exact same problem with Hydrogen. Most of the time it crashes immediately. If I start it repeatedly it will eventually succeed. I have found it's a lot more likely to segfault immediately on startup if JACK is run in verbose mode, and the crashes are more likely with lower latencies. 32 frames almost always crashes. 128 almost always succeeds. 64 is hit or miss. Lower latencies are less likely to crash on a faster machine. I have reproduced this across several versions of JACK and Hydrogen on multiple machines. I got a backtrace from gdb and this is where it crashes (from src/lib/Hydrogen.cpp): inline void audioEngine_process_clearAudioBuffers(uint32_t nFrames) { *---> memset( m_pMainBuffer_L, 0, nFrames * sizeof( float ) ); // clear main out Left memset( m_pMainBuffer_R, 0, nFrames * sizeof( float ) ); // clear main out Right As soon as it goes to clear the audio buffers, boom. As the problem is timing sensitive it's certainly a race condition. I cannot determine whether the bug is in JACK or hydrogen though. I have reported the problem on hydrogen-devel and got no response whatsoever. It's getting to be frustrating as the bug is 100% reproducible, but I can't even get the Hydrogen developers to ACK my bug report. Here is the backtrace. Lee (gdb) bt full #0 0xb759949b in memset (dstpp=0x0, c=0, len=512) at ../sysdeps/i386/memset.c:65 d0 = 128 dstp = 0 x = 0 #1 0x0807da0f in audioEngine_process_clearAudioBuffers (nFrames=128) at src/lib/Hydrogen.cpp:702 No locals. #2 0x08074381 in audioEngine_process (nframes=128, arg=0x0) at src/lib/Hydrogen.cpp:746 res = 0 startTimeval = {tv_sec = 1107297223, tv_usec = 403047} sendPatternChange = 183 res2 = -1218109252 renderTime_start = {tv_sec = -1217118338, tv_usec = -1208618368} i = 3086349340 pNote = (class Note *) 0x1 renderTime_end = {tv_sec = 91845001, tv_usec = -1084229004} ladspaTime_start = {tv_sec = 52302212, tv_usec = 0} ladspaTime_end = {tv_sec = -1208836712, tv_usec = 0} val_L = -0.87490797 val_R = 1.40129846e-45 fRenderTime = 0 fLadspaTime = 1.821688e-44 finishTimeval = {tv_sec = -1208834440, tv_usec = -1084229128} sampleRate = 1.17287768e-35 #3 0xb7f2e9f9 in jack_client_thread (arg=0x82f59d0) at client.c:1264 control = (volatile struct {...} *) 0xb73a3000 event = {type = GraphReordered, x = {n = 0, port_id = 0, self_id = 0}, y = {n = 1, ptid = 1, other_id = 1}} status = 0 '\0' c = 0 '\0' err = 0 #4 0xb773fe51 in pthread_start_thread (arg=0xbf5ffbe0) at manager.c:309 default_params = {__sched_priority = 0} request = {req_thread = 0x0, req_kind = REQ_CREATE, req_args = {create = {attr = 0x0, fn = 0, arg = 0x0, mask = {__val = { 0 <repeats 32 times>}}}, free = {thread_id = 0}, exit = {code = 0}, post = 0x0, for_each = {fn = 0, arg = 0x0}}} outcome = (void *) 0x0 #5 0xb75f96ea in clone () from /usr/lib/debug/libc.so.6 fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0, fs_passno = 0}} __elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0xb762dce0