Discussion:
[Jack-Devel] Jack crushes after 60 min running without problems
Moritz Balters
2018-07-25 09:48:07 UTC
Permalink
Hey Folks,

I have a problem with Jack running on my Rapi 3:
I start the server like This:

jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp 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 server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: capture device hw:1
Jack: playback device hw:0
Jack: apparent rate = 32000
Jack: frames per period = 128
Jack: JackDriver::Open capture_driver_name = hw:1
Jack: JackDriver::Open playback_driver_name = hw:0
Jack: Check protocol client = 8 server = 8
Jack: JackEngine::ClientInternalOpen: name = system
Jack: JackEngine::AllocateRefNum ref = 0
Jack: JackPosixSemaphore::Allocate name = jack_sem.1000_default_system val
= 0
Jack: JackEngine::NotifyAddClient: name = system
Jack: JackGraphManager::SetBufferSize size = 128
Jack: JackConnectionManager::DirectConnect first: ref1 = 0 ref2 = 0
Jack: JackGraphManager::ConnectRefNum cur_index = 0 ref1 = 0 ref2 = 0
Jack: JackDriver::SetupDriverSync driver sem in flush mode
creating alsa driver ... hw:0|hw:1|128|6|32000|8|0|nomon|swmeter|-|32bit
configuring for 32000Hz, period = 128 frames (4.0 ms), buffer = 6 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 6 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 6 periods for playback

And after running an Hour, out of nothing, I got this error:

Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: Process: graph not finished!
Jack: Process: waiting to switch delta = 3989
JackEngine::XRun: client = MHA was not finished, state = Running
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
JackAudioDriver::ProcessGraphAsyncMaster: Process error
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: **** alsa_pcm: xrun of at least -4232311.296 msecs
Jack: ALSA XRun wait_status = 0
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: **** alsa_pcm: xrun of at least -4232315.904 msecs
Jack: ALSA XRun wait_status = 0
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: **** alsa_pcm: xrun of at least -4232320.256 msecs
Jack: ALSA XRun wait_status = 0
.
.
.
I tried several times with different configs, bus it always crushes like
this. With 4 Periods after around 30min, with this 6 periods after an hour.

Does anyone has an idea what the reason for this behavior could be?
Thanks in advance!

Moritz
Chris Caudle
2018-07-25 15:50:43 UTC
Permalink
Do you mean a Rasberry Pi 3 device?
That is the processor, but what is the audio device? I wasn't aware
Rasberry Pi had built in audio, is that new for the 3 device, or did
earlier devices have that as well?
Show the output of aplay -l to see how the device is detected.
Post by Moritz Balters
Jack: capture device hw:1
Jack: playback device hw:0
Different devices for capture and playback is strange.
How did you even specify that? What is the startup command line you use
for jackd?
Post by Moritz Balters
configuring for 32000Hz, period = 128 frames (4.0 ms), buffer = 6 periods
128 frames and 6 periods is an unusual configuration, have you tried 256
frames and 3 periods?
Post by Moritz Balters
JackEngine::XRun: client = MHA was not finished, state = Running
What client is this (MHA)? This error message means that the client MHA
did not finish processing the audio in the amount of time allocated.
Post by Moritz Balters
Does anyone has an idea what the reason for this behavior could be?
Seems like the application you are using cannot maintain the audio
processing.
Try larger period size like 256 or 512 or even 1024 if you are not running
something which is very latency sensitive. Are you using this for real
time music production (guitar effects, soft synthesizer application), or
just audio playback? If just for audio playback you should be able to
use 1024 without any problem. For something like a guitar effects
processor you would probably want lower latency, but even then 256 may be
OK.
--
Chris Caudle
Loading...