Update - This issue has been fixed in JACK 0.103.0
/* post xrun-handling */ jack_nframes_t period_size_guess = engine->control->current_time.frame_rate * ((timer->next_wakeup - timer->current_wakeup) / 1000000.0); timer->frames += ((engine->driver->last_wait_ust - engine->control->frame_timer.next_wakeup) / period_size_guess) * period_size_guess;Unfortunately period_size_guess always evaluates to zero, so timer->frames ends up having (somevalue/0.0)*0.0 added to it. This usually also evaluates to zero, so most of the time it doesn't have a visible effect, but every once in a while it produces a floating point exception. On systems using multiple sound cards for high channel counts this is likely to happen often enough to be a serious problem.
diff -uprN j-0.102.20/jackd/engine.c j2-0.102.20/jackd/engine.c --- j-0.102.20/jackd/engine.c 2006-08-01 04:26:36.000000000 +0100 +++ j2-0.102.20/jackd/engine.c 2006-12-31 01:03:45.000000000 +0000 @@ -2065,7 +2065,7 @@ jack_run_cycle (jack_engine_t *engine, j /* post xrun-handling */ - jack_nframes_t period_size_guess = + double period_size_guess = engine->control->current_time.frame_rate * ((timer->next_wakeup - timer->current_wakeup) / 1000000.0);